java.lang.Object
com.jmc.lang.ref.Func<R>
- 类型参数:
R
- 返回值类型
函数引用
可将方法作为参数传入另一个方法以便调用,且支持直接传入lambda
(参数均必须小于等于7个,支持传入基本数据类型)
可将方法作为参数传入另一个方法以便调用,且支持直接传入lambda
(参数均必须小于等于7个,支持传入基本数据类型)
- 从以下版本开始:
- 1.0
- API Note:
// add方法 public int add(int a, int b) { return a + b; } // 执行指定add方法 // 这里的泛型Integer指的是方法返回值类型 public void invokeAdd(Func<Integer> addFunc, int a, int b) { // 执行函数指针并获取返回值 int res = addFunc.invoke(a, b); System.out.println(res); } public void test() { // 绑定一个方法作为函数指针 var addFunc = Func.of(this::add); // 将函数指针传入方法 invokeAdd(addFunc, 2, 3); // 绑定一个方法和其中一个参数作为偏函数指针 var bindFunc = Func.partial(this::add, 3); // 传入剩余参数,执行这个函数指针并获得返回值(7) int res2 = bindFunc.invoke(4); // 绑定一个lambda作为函数指针 var lambdaFunc = Func.of((String a, String b) -> a + b); // 执行这个函数指针并获得返回值("12") String res3 = lambdaFunc.invoke("1", "2"); // 绑定一个纯基本数据类型的lambda作为函数指针(需要补充泛型) var numberLambdaFunc = Func.<Long>of((a, b) -> a - b); // 执行这个函数指针并获得返回值(3) long res4 = numberLambdaFunc.invoke(7L, 4L); }
-
嵌套类概要
嵌套类修饰符和类型类说明static interface
Func.Number1<T extends Number>
接收1个数字参数,返回数字的函数引用或代码块的接口static interface
Func.Number2<T extends Number>
接收2个数字参数,返回数字的函数引用或代码块的接口static interface
Func.Number3<T extends Number>
接收3个数字参数,返回数字的函数引用或代码块的接口static interface
Func.Number4<T extends Number>
接收4个数字参数,返回数字的函数引用或代码块的接口static interface
Func.Number5<T extends Number>
接收5个数字参数,返回数字的函数引用或代码块的接口static interface
Func.Number6<T extends Number>
接收6个数字参数,返回数字的函数引用或代码块的接口static interface
Func.Number7<T extends Number>
接收7个数字参数,返回数字的函数引用或代码块的接口static interface
无接收参数,有返回值的函数引用或代码块的接口static interface
接收1个参数,有返回值的函数引用或代码块的接口static interface
Func.Object2<T,
U, R> 接收2个参数,有返回值的函数引用或代码块的接口static interface
Func.Object3<T,
U, V, R> 接收3个参数,有返回值的函数引用或代码块的接口static interface
接收4个参数,有返回值的函数引用或代码块的接口static interface
接收5个参数,有返回值的函数引用或代码块的接口static interface
接收6个参数,有返回值的函数引用或代码块的接口static interface
接收7个参数,有返回值的函数引用或代码块的接口static interface
无接收参数,无返回值的函数引用或代码块的接口static interface
接收1个参数,无返回值的函数引用或代码块的接口static interface
Func.Void2<T,
U> 接收2个参数,无返回值的函数引用或代码块的接口static interface
Func.Void3<T,
U, V> 接收3个参数,无返回值的函数引用或代码块的接口static interface
Func.Void4<T,
U, V, W> 接收4个参数,无返回值的函数引用或代码块的接口static interface
接收5个参数,无返回值的函数引用或代码块的接口static interface
接收6个参数,无返回值的函数引用或代码块的接口static interface
接收7个参数,无返回值的函数引用或代码块的接口 -
方法概要
修饰符和类型方法说明protected static void
checkInvokeParams
(int realSize, int assertSize) 检查调用方法的参数个数是否匹配abstract R
执行方法protected R
invokeUsingReflection
(Object funcInterfaceObj, Object... args) 使用反射调用执行方法of
(Func.Number1<T> m) 返回一个函数引用实例of
(Func.Number2<T> m) 返回一个函数引用实例of
(Func.Number3<T> m) 返回一个函数引用实例of
(Func.Number4<T> m) 返回一个函数引用实例of
(Func.Number5<T> m) 返回一个函数引用实例of
(Func.Number6<T> m) 返回一个函数引用实例of
(Func.Number7<T> m) 返回一个函数引用实例static <R> Func
<R> of
(Func.Object0<R> m) 返回一个函数引用实例static <T,
R> Func <R> of
(Func.Object1<T, R> m) 返回一个函数引用实例static <T,
U, R> Func <R> of
(Func.Object2<T, U, R> m) 返回一个函数引用实例static <T,
U, V, R>
Func<R> of
(Func.Object3<T, U, V, R> m) 返回一个函数引用实例static <T,
U, V, W, R>
Func<R> of
(Func.Object4<T, U, V, W, R> m) 返回一个函数引用实例static <T,
U, V, W, X, R>
Func<R> of
(Func.Object5<T, U, V, W, X, R> m) 返回一个函数引用实例static <T,
U, V, W, X, Y, R>
Func<R> of
(Func.Object6<T, U, V, W, X, Y, R> m) 返回一个函数引用实例static <T,
U, V, W, X, Y, Z, R>
Func<R> of
(Func.Object7<T, U, V, W, X, Y, Z, R> m) 返回一个函数引用实例of
(Func.Void0 m) 返回一个函数引用实例of
(Func.Void1<T> m) 返回一个函数引用实例of
(Func.Void2<T, U> m) 返回一个函数引用实例of
(Func.Void3<T, U, V> m) 返回一个函数引用实例of
(Func.Void4<T, U, V, W> m) 返回一个函数引用实例of
(Func.Void5<T, U, V, W, X> m) 返回一个函数引用实例of
(Func.Void6<T, U, V, W, X, Y> m) 返回一个函数引用实例of
(Func.Void7<T, U, V, W, X, Y, Z> m) 返回一个函数引用实例partial
(Func.Number1<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Number2<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Number3<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Number4<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Number5<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Number6<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Number7<T> m, T... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
R> Func <R> partial
(Func.Object1<T, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
U, R> Func <R> partial
(Func.Object2<T, U, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
U, V, R>
Func<R> partial
(Func.Object3<T, U, V, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
U, V, W, R>
Func<R> partial
(Func.Object4<T, U, V, W, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
U, V, W, X, R>
Func<R> partial
(Func.Object5<T, U, V, W, X, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
U, V, W, X, Y, R>
Func<R> partial
(Func.Object6<T, U, V, W, X, Y, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例static <T,
U, V, W, X, Y, Z, R>
Func<R> partial
(Func.Object7<T, U, V, W, X, Y, Z, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void1<?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void2<?, ?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void3<?, ?, ?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void4<?, ?, ?, ?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void5<?, ?, ?, ?, ?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void6<?, ?, ?, ?, ?, ?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例partial
(Func.Void7<?, ?, ?, ?, ?, ?, ?> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例
-
方法详细资料
-
invoke
执行方法- 参数:
args
- 参数- 返回:
- 返回值
-
invokeUsingReflection
使用反射调用执行方法- 参数:
funcInterfaceObj
- 承载函数的接口对象args
- 参数- 返回:
- 返回值
- 从以下版本开始:
- 3.8
-
checkInvokeParams
protected static void checkInvokeParams(int realSize, int assertSize) 检查调用方法的参数个数是否匹配- 参数:
realSize
- 实际参数个数assertSize
- 需要参数个数
-
of
返回一个函数引用实例- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型Y
- 参数6类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型Y
- 参数6类型Z
- 参数7类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型Y
- 参数6类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型Y
- 参数6类型Z
- 参数7类型R
- 返回值类型- 参数:
m
- lambda表达式或方法引用- 返回:
- 函数引用实例
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为单个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为2个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为3个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为4个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为5个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为6个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
of
返回一个函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 参数为7个数字的代码块或方法引用- 返回:
- 函数引用实例
- 从以下版本开始:
- 1.4
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型Y
- 参数6类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
public static <T,U, Func<R> partialV, W, X, Y, Z, R> (Func.Object7<T, U, V, W, X, Y, Z, R> m, Object... args) 返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 参数1类型U
- 参数2类型V
- 参数3类型W
- 参数4类型X
- 参数5类型Y
- 参数6类型Z
- 参数6类型R
- 返回值类型- 参数:
m
- 方法引用或代码块args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-
partial
返回一个绑定部分或者所有参数的函数引用实例- 类型参数:
T
- 数字类型- 参数:
m
- 方法引用或代码块(含数字参数的)args
- 参数列表- 返回:
- 函数引用实例
- 从以下版本开始:
- 3.8
-