Class FieldReflect
java.lang.Object
org.miaixz.bus.core.lang.reflect.field.FieldReflect
字段反射类
此类持有类中字段的缓存,如果字段在类中修改,则需要手动调用clearCaches方法清除缓存。
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid清空缓存Field[]getAllFields(Predicate<Field> predicate) 获得当前类和父类声明的所有字段(包括非public字段)Class<?> getClazz()获取当前类Field[]getDeclaredFields(Predicate<Field> predicate) 获得当前类声明的所有字段(包括非public字段),但不包括父类的字段Field[]getFieldsDirectly(boolean withSuperClassFields) 获得一个类中所有字段列表,直接反射获取,无缓存 如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。static FieldReflect创建FieldReflect
-
Constructor Details
-
FieldReflect
构造- Parameters:
clazz- 类
-
-
Method Details
-
of
创建FieldReflect- Parameters:
clazz- 类- Returns:
- FieldReflect
-
getClazz
获取当前类- Returns:
- 当前类
-
clearCaches
public void clearCaches()清空缓存 -
getDeclaredFields
获得当前类声明的所有字段(包括非public字段),但不包括父类的字段- Parameters:
predicate- 过滤器- Returns:
- 字段数组
- Throws:
SecurityException- 安全检查异常
-
getAllFields
获得当前类和父类声明的所有字段(包括非public字段)- Parameters:
predicate- 过滤器- Returns:
- 字段数组
- Throws:
SecurityException- 安全检查异常
-
getFieldsDirectly
获得一个类中所有字段列表,直接反射获取,无缓存 如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。- Parameters:
withSuperClassFields- 是否包括父类的字段列表- Returns:
- 字段列表
- Throws:
SecurityException- 安全检查异常
-