Class FieldReflect

java.lang.Object
org.miaixz.bus.core.lang.reflect.field.FieldReflect

public class FieldReflect extends Object
字段反射类 此类持有类中字段的缓存,如果字段在类中修改,则需要手动调用clearCaches方法清除缓存。
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • FieldReflect

      public FieldReflect(Class<?> clazz)
      构造
      Parameters:
      clazz - 类
  • Method Details

    • of

      public static FieldReflect of(Class<?> clazz)
      创建FieldReflect
      Parameters:
      clazz - 类
      Returns:
      FieldReflect
    • getClazz

      public Class<?> getClazz()
      获取当前类
      Returns:
      当前类
    • clearCaches

      public void clearCaches()
      清空缓存
    • getDeclaredFields

      public Field[] getDeclaredFields(Predicate<Field> predicate)
      获得当前类声明的所有字段(包括非public字段),但不包括父类的字段
      Parameters:
      predicate - 过滤器
      Returns:
      字段数组
      Throws:
      SecurityException - 安全检查异常
    • getAllFields

      public Field[] getAllFields(Predicate<Field> predicate)
      获得当前类和父类声明的所有字段(包括非public字段)
      Parameters:
      predicate - 过滤器
      Returns:
      字段数组
      Throws:
      SecurityException - 安全检查异常
    • getFieldsDirectly

      public Field[] getFieldsDirectly(boolean withSuperClassFields) throws SecurityException
      获得一个类中所有字段列表,直接反射获取,无缓存 如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。
      Parameters:
      withSuperClassFields - 是否包括父类的字段列表
      Returns:
      字段列表
      Throws:
      SecurityException - 安全检查异常