Package org.aoju.bus.core.toolkit
Class LambdaKit
java.lang.Object
org.aoju.bus.core.toolkit.LambdaKit
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic <T,R> Function <T, R> buildGetter(Class<T> clazz, String fieldName) 等效于 Obj::getXxxstatic <T,R> Function <T, R> buildGetter(Method getMethod) 等效于 Obj::getXxxstatic <T,P> BiConsumer <T, P> buildSetter(Class<T> clazz, String fieldName) Obj::setXxxstatic <T,P> BiConsumer <T, P> buildSetter(Method setMethod) 等效于 Obj::setXxxstatic <T extends Serializable>
StringgetFieldName(T func) 获取lambda表达式Getter或Setter函数(方法)对应的字段名称,规则如下: getXxxx获取为xxxx,如getName得到name。static <T extends Serializable>
StringgetMethodName(T func) 获取lambda表达式函数(方法)名称static <R,T extends Serializable>
Class<R> getRealClass(T func) 通过对象的方法或类的静态方法引用,获取lambda实现类static <F> F等效于 Obj::methodstatic <T extends Serializable>
LambdaKit.Inforesolve(T func) 解析lambda表达式,加了缓存。
-
Constructor Details
-
LambdaKit
public LambdaKit()
-
-
Method Details
-
getRealClass
通过对象的方法或类的静态方法引用,获取lambda实现类- Type Parameters:
R- 类型T- lambda的类型- Parameters:
func- lambda- Returns:
- lambda实现类
-
resolve
解析lambda表达式,加了缓存。 该缓存可能会在任意不定的时间被清除- Type Parameters:
T- lambda的类型- Parameters:
func- 需要解析的 lambda 对象(无参方法)- Returns:
- 返回解析后的结果
-
getMethodName
获取lambda表达式函数(方法)名称- Type Parameters:
T- lambda的类型- Parameters:
func- 函数(无参方法)- Returns:
- 函数名称
-
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方法
-
buildGetter
-
buildGetter
-
buildSetter
等效于 Obj::setXxx- Type Parameters:
T- 调用setter方法对象类型P- setter方法返回的值类型- Parameters:
setMethod- setter方法- Returns:
- Obj::setXxx
-
buildSetter
Obj::setXxx- Type Parameters:
T- 调用setter方法对象类型P- setter方法返回的值类型- Parameters:
clazz- 调用setter方法对象类fieldName- 字段名称- Returns:
- Obj::setXxx
-
lambda
-