Package org.aoju.bus.core.toolkit
Class LambdaKit
java.lang.Object
org.aoju.bus.core.toolkit.LambdaKit
Lambda相关工具类
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> StringgetFieldName(Func0<T> func) 获取lambda表达式Getter或Setter函数(方法)对应的字段名称,规则如下: getXxxx获取为xxxx,如getName得到name setXxxx获取为xxxx,如setName得到name isXxxx获取为xxxx,如isName得到name 其它不满足规则的方法名抛出IllegalArgumentExceptionstatic <T> StringgetFieldName(Func1<T, ?> func) 获取lambda表达式Getter或Setter函数(方法)对应的字段名称,规则如下: getXxxx获取为xxxx,如getName得到name setXxxx获取为xxxx,如setName得到name isXxxx获取为xxxx,如isName得到name 其它不满足规则的方法名抛出IllegalArgumentExceptionstatic <R> StringgetMethodName(Func0<R> func) 获取lambda表达式函数(方法)名称static <P> StringgetMethodName(Func1<P, ?> func) 获取lambda表达式函数(方法)名称static <R> Class<R>getRealClass(Func0<?> func) 通过对象的方法或类的静态方法引用,获取lambda实现类static <P,R> Class<P> getRealClass(Func1<P, R> func) 通过对象的方法或类的静态方法引用,然后根据SerializedLambda.getInstantiatedMethodType()获取lambda实现类 传入lambda有参数且含有返回值的情况能够匹配到此方法:static <R> SerializedLambda解析lambda表达式,加了缓存 该缓存可能会在任意不定的时间被清除static <T> SerializedLambda解析lambda表达式,加了缓存 该缓存可能会在任意不定的时间被清除
-
Constructor Details
-
LambdaKit
public LambdaKit()
-
-
Method Details
-
resolve
解析lambda表达式,加了缓存 该缓存可能会在任意不定的时间被清除- Type Parameters:
T- Lambda类型- Parameters:
func- 需要解析的 lambda 对象(无参方法)- Returns:
- 返回解析后的结果
-
resolve
解析lambda表达式,加了缓存 该缓存可能会在任意不定的时间被清除- Type Parameters:
R- Lambda返回类型- Parameters:
func- 需要解析的 lambda 对象(无参方法)- Returns:
- 返回解析后的结果
-
getMethodName
获取lambda表达式函数(方法)名称- Type Parameters:
P- Lambda参数类型- Parameters:
func- 函数(无参方法)- Returns:
- 函数名称
-
getMethodName
获取lambda表达式函数(方法)名称- Type Parameters:
R- Lambda返回类型- Parameters:
func- 函数(无参方法)- Returns:
- 函数名称
-
getRealClass
通过对象的方法或类的静态方法引用,获取lambda实现类- Type Parameters:
R- 类型- Parameters:
func- lambda- Returns:
- lambda实现类
- Throws:
IllegalArgumentException- 如果是不支持的方法引用,抛出该异常,见checkLambdaTypeCanGetClass(int)
-
getRealClass
通过对象的方法或类的静态方法引用,然后根据SerializedLambda.getInstantiatedMethodType()获取lambda实现类 传入lambda有参数且含有返回值的情况能够匹配到此方法:- Type Parameters:
P- 方法调用方类型R- 返回值类型- Parameters:
func- lambda- Returns:
- lambda实现类
- Throws:
IllegalArgumentException- 如果是不支持的方法引用,抛出该异常,见checkLambdaTypeCanGetClass(int)
-
getFieldName
获取lambda表达式Getter或Setter函数(方法)对应的字段名称,规则如下:- getXxxx获取为xxxx,如getName得到name
- setXxxx获取为xxxx,如setName得到name
- isXxxx获取为xxxx,如isName得到name
- 其它不满足规则的方法名抛出
IllegalArgumentException
- Type Parameters:
T- Lambda类型- Parameters:
func- 函数(无参方法)- Returns:
- 方法名称
- Throws:
IllegalArgumentException- 非Getter或Setter方法
-
getFieldName
获取lambda表达式Getter或Setter函数(方法)对应的字段名称,规则如下:- getXxxx获取为xxxx,如getName得到name
- setXxxx获取为xxxx,如setName得到name
- isXxxx获取为xxxx,如isName得到name
- 其它不满足规则的方法名抛出
IllegalArgumentException
- Type Parameters:
T- Lambda类型- Parameters:
func- 函数(无参方法)- Returns:
- 方法名称
- Throws:
IllegalArgumentException- 非Getter或Setter方法
-