Class MethodInvokers
- java.lang.Object
-
- org.apache.commons.lang3.function.MethodInvokers
-
public final class MethodInvokers extends java.lang.ObjectConvertsMethodobjects to lambdas.More specifically, produces instances of single-method interfaces which redirect calls to methods; see
asInterfaceInstance(Class, Method).Calling supplier methods with no arguments
If the interface's single-method defines no arguments, use
asFunction(Method)and then apply the function passing in the object to receive the method call.For example to invoke
String.length():final Method method = String.class.getMethod("length"); final Function<String, Integer> function = MethodInvokers.asFunction(method); assertEquals(3, function.apply("ABC"));Calling function methods with one argument
If the interface's single-method defines one argument, use
asBiFunction(Method)and then apply the function passing in the object to receive the method call. The second argument to the function is the only argument to the method.For example to invoke
String.charAt(int):final Method method = String.class.getMethod("charAt", int.class); final BiFunction<String, Integer, Character> function = MethodInvokers.asBiFunction(method); assertEquals('C', function.apply("ABC", 2));- Since:
- 3.13.0
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T,U>
java.util.function.BiConsumer<T,U>asBiConsumer(java.lang.reflect.Method method)Produces aBiConsumerfor a given consumer Method.static <T,U,R>
java.util.function.BiFunction<T,U,R>asBiFunction(java.lang.reflect.Method method)Produces aBiFunctionfor a given a function Method.static <T,U>
FailableBiConsumer<T,U,java.lang.Throwable>asFailableBiConsumer(java.lang.reflect.Method method)Produces aFailableBiConsumerfor a given consumer Method.static <T,U,R>
FailableBiFunction<T,U,R,java.lang.Throwable>asFailableBiFunction(java.lang.reflect.Method method)Produces aFailableBiFunctionfor a given a function Method.static <T,R>
FailableFunction<T,R,java.lang.Throwable>asFailableFunction(java.lang.reflect.Method method)Produces aFailableFunctionfor a given a supplier Method.static <R> FailableSupplier<R,java.lang.Throwable>asFailableSupplier(java.lang.reflect.Method method)Produces aFailableSupplierfor a given a supplier Method.static <T,R>
java.util.function.Function<T,R>asFunction(java.lang.reflect.Method method)Produces aFunctionfor a given a supplier Method.static <T> TasInterfaceInstance(java.lang.Class<T> interfaceClass, java.lang.reflect.Method method)Produces an instance of the given single-method interface which redirects its calls to the given method.static <R> java.util.function.Supplier<R>asSupplier(java.lang.reflect.Method method)Produces aSupplierfor a given a supplier Method.
-
-
-
Method Detail
-
asBiConsumer
public static <T,U> java.util.function.BiConsumer<T,U> asBiConsumer(java.lang.reflect.Method method)
Produces aBiConsumerfor a given consumer Method. For example, a classic setter method (as opposed to a fluent setter). You call the BiConsumer with two arguments: (1) the object receiving the method call, and (2) the method argument.- Type Parameters:
T- the type of the first argument to the operation: The type containing the Method.U- the type of the second argument to the operation: The type of the method argument.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asBiFunction
public static <T,U,R> java.util.function.BiFunction<T,U,R> asBiFunction(java.lang.reflect.Method method)
Produces aBiFunctionfor a given a function Method. You call the BiFunction with two arguments: (1) the object receiving the method call, and (2) the method argument. The BiFunction return type must match the method's return type.For example to invoke
String.charAt(int):final Method method = String.class.getMethod("charAt", int.class); final BiFunction<String, Integer, Character> function = MethodInvokers.asBiFunction(method); assertEquals('C', function.apply("ABC", 2));- Type Parameters:
T- the type of the first argument to the function: The type containing the method.U- the type of the second argument to the function: the method argument type.R- the type of the result of the function: The method return type.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asFailableBiConsumer
public static <T,U> FailableBiConsumer<T,U,java.lang.Throwable> asFailableBiConsumer(java.lang.reflect.Method method)
Produces aFailableBiConsumerfor a given consumer Method. For example, a classic setter method (as opposed to a fluent setter). You call the FailableBiConsumer with two arguments: (1) the object receiving the method call, and (2) the method argument.- Type Parameters:
T- the type of the first argument to the operation: The type containing the Method.U- the type of the second argument to the operation: The type of the method argument.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asFailableBiFunction
public static <T,U,R> FailableBiFunction<T,U,R,java.lang.Throwable> asFailableBiFunction(java.lang.reflect.Method method)
Produces aFailableBiFunctionfor a given a function Method. You call the FailableBiFunction with two arguments: (1) the object receiving the method call, and (2) the method argument. The BiFunction return type must match the method's return type.- Type Parameters:
T- the type of the first argument to the function: The type containing the method.U- the type of the second argument to the function: the method argument type.R- the type of the result of the function: The method return type.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asFailableFunction
public static <T,R> FailableFunction<T,R,java.lang.Throwable> asFailableFunction(java.lang.reflect.Method method)
Produces aFailableFunctionfor a given a supplier Method. You call the Function with one argument: the object receiving the method call. The FailableFunction return type must match the method's return type.- Type Parameters:
T- the type of the first argument to the function: The type containing the method.R- the type of the result of the function: The method return type.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asFailableSupplier
public static <R> FailableSupplier<R,java.lang.Throwable> asFailableSupplier(java.lang.reflect.Method method)
Produces aFailableSupplierfor a given a supplier Method. The FailableSupplier return type must match the method's return type.Only works with static methods.
- Type Parameters:
R- The Method return type.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asFunction
public static <T,R> java.util.function.Function<T,R> asFunction(java.lang.reflect.Method method)
Produces aFunctionfor a given a supplier Method. You call the Function with one argument: the object receiving the method call. The Function return type must match the method's return type.For example to invoke
String.length():final Method method = String.class.getMethod("length"); final Function<String, Integer> function = MethodInvokers.asFunction(method); assertEquals(3, function.apply("ABC"));- Type Parameters:
T- the type of the first argument to the function: The type containing the method.R- the type of the result of the function: The method return type.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
asInterfaceInstance
public static <T> T asInterfaceInstance(java.lang.Class<T> interfaceClass, java.lang.reflect.Method method)Produces an instance of the given single-method interface which redirects its calls to the given method.For the definition of "single-method", see MethodHandleProxies.asInterfaceInstance(Class, MethodHandle).
- Type Parameters:
T- The interface type.- Parameters:
interfaceClass- a class object representingT.method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
- See Also:
MethodHandleProxies.asInterfaceInstance(Class, MethodHandle)
-
asSupplier
public static <R> java.util.function.Supplier<R> asSupplier(java.lang.reflect.Method method)
Produces aSupplierfor a given a supplier Method. The Supplier return type must match the method's return type.Only works with static methods.
- Type Parameters:
R- The Method return type.- Parameters:
method- the method to invoke.- Returns:
- a correctly-typed wrapper for the given target.
-
-