Class LambdaKit

java.lang.Object
org.aoju.bus.core.toolkit.LambdaKit

public class LambdaKit extends Object
Lambda相关工具类
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • LambdaKit

      public LambdaKit()
  • Method Details

    • getRealClass

      public static <R, T extends Serializable> Class<R> getRealClass(T func)
      通过对象的方法或类的静态方法引用,获取lambda实现类
      Type Parameters:
      R - 类型
      T - lambda的类型
      Parameters:
      func - lambda
      Returns:
      lambda实现类
    • resolve

      public static <T extends Serializable> LambdaKit.Info resolve(T func)
      解析lambda表达式,加了缓存。 该缓存可能会在任意不定的时间被清除
      Type Parameters:
      T - lambda的类型
      Parameters:
      func - 需要解析的 lambda 对象(无参方法)
      Returns:
      返回解析后的结果
    • getMethodName

      public static <T extends Serializable> String getMethodName(T func)
      获取lambda表达式函数(方法)名称
      Type Parameters:
      T - lambda的类型
      Parameters:
      func - 函数(无参方法)
      Returns:
      函数名称
    • getFieldName

      public static <T extends Serializable> String getFieldName(T func) throws IllegalArgumentException
      获取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方法