Constructor and Description |
---|
FieldUtil() |
Modifier and Type | Method and Description |
---|---|
static Field |
getDeclaredField(Class<?> beanClass,
String name)
获取本类定义的指定名称的字段,包括私有字段,但是不包括父类字段
|
static Field[] |
getDeclaredFields(Class<?> beanClass,
Predicate<Field> fieldPredicate)
获得当前类声明的所有字段(包括非public字段),但不包括父类的字段
|
static Field |
getField(Class<?> beanClass,
String name)
查找指定类中的指定name的字段(包括非public字段),也包括父类和Object类的字段, 字段不存在则返回
null |
static Map<String,Field> |
getFieldMap(Class<?> beanClass)
获取指定类中字段名和字段对应的有序Map,包括其父类中的字段
如果子类与父类中存在同名字段,则父类字段忽略 |
static String |
getFieldName(Field field)
获取字段名,如果存在
Alias 注解,读取注解的值作为名称 |
static String |
getFieldName(Field field,
boolean useAlias)
获取字段名,可选是否使用
Alias 注解,读取注解的值作为名称 |
static Field[] |
getFields(Class<?> beanClass)
获得一个类中所有字段列表,包括其父类中的字段
如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。 |
static Field[] |
getFields(Class<?> beanClass,
Predicate<Field> fieldPredicate)
获得一个类中所有满足条件的字段列表,包括其父类中的字段
如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。 |
static Field[] |
getFieldsDirectly(Class<?> beanClass,
boolean withSuperClassFields)
获得一个类中所有字段列表,直接反射获取,无缓存
如果子类与父类中存在同名字段,则这两个字段同时存在,子类字段在前,父类字段在后。 |
static Object[] |
getFieldsValue(Object obj)
获取所有字段的值
|
static Object[] |
getFieldsValue(Object obj,
Predicate<Field> filter)
获取所有字段的值
|
static Object |
getFieldValue(Object obj,
Field field)
获取字段值
|
static Object |
getFieldValue(Object obj,
String fieldName)
获取字段值
|
static Object |
getStaticFieldValue(Field field)
获取静态字段值
|
static boolean |
hasField(Class<?> beanClass,
String name)
查找指定类中是否包含指定名称对应的字段,包括所有字段(包括非public字段),也包括父类和Object类的字段
|
static boolean |
isOuterClassField(Field field)
是否为父类引用字段
当字段所在类是对象子类时(对象中定义的非static的class),会自动生成一个以"this$0"为名称的字段,指向父类对象 |
static void |
setFieldValue(Object obj,
Field field,
Object value)
设置字段值,如果值类型必须与字段类型匹配,会自动转换对象类型
|
static void |
setFieldValue(Object obj,
Field field,
Object value,
Converter converter)
设置字段值,如果值类型必须与字段类型匹配,会自动转换对象类型
|
static void |
setFieldValue(Object obj,
String fieldName,
Object value)
设置字段值
|
static void |
setStaticFieldValue(Field field,
Object value)
设置静态(static)字段值
|
public static boolean isOuterClassField(Field field)
field
- 字段public static boolean hasField(Class<?> beanClass, String name) throws SecurityException
beanClass
- 被查找字段的类,不能为nullname
- 字段名SecurityException
- 安全异常public static String getFieldName(Field field)
Alias
注解,读取注解的值作为名称field
- 字段public static String getFieldName(Field field, boolean useAlias)
Alias
注解,读取注解的值作为名称field
- 字段useAlias
- 是否检查并使用Alias
注解public static Field getDeclaredField(Class<?> beanClass, String name)
beanClass
- Bean的Classname
- 字段名称null
public static Field getField(Class<?> beanClass, String name) throws SecurityException
null
beanClass
- 被查找字段的类,不能为nullname
- 字段名SecurityException
- 安全异常public static Map<String,Field> getFieldMap(Class<?> beanClass)
beanClass
- 类public static Field[] getFields(Class<?> beanClass) throws SecurityException
beanClass
- 类SecurityException
- 安全检查异常public static Field[] getFields(Class<?> beanClass, Predicate<Field> fieldPredicate) throws SecurityException
beanClass
- 类fieldPredicate
- field过滤器,过滤掉不需要的field,Predicate.test(Object)
为true
保留,null表示全部保留SecurityException
- 安全检查异常public static Field[] getDeclaredFields(Class<?> beanClass, Predicate<Field> fieldPredicate) throws SecurityException
beanClass
- 类fieldPredicate
- field过滤器,过滤掉不需要的field,Predicate.test(Object)
为true
保留,null表示全部保留SecurityException
- 安全检查异常public static Field[] getFieldsDirectly(Class<?> beanClass, boolean withSuperClassFields) throws SecurityException
beanClass
- 类withSuperClassFields
- 是否包括父类的字段列表SecurityException
- 安全检查异常public static Object getFieldValue(Object obj, String fieldName) throws HutoolException
obj
- 对象,如果static字段,此处为类fieldName
- 字段名HutoolException
- 包装IllegalAccessException异常public static Object getStaticFieldValue(Field field) throws HutoolException
field
- 字段HutoolException
- 包装IllegalAccessException异常public static Object getFieldValue(Object obj, Field field) throws HutoolException
obj
- 对象,static字段则此字段为nullfield
- 字段HutoolException
- 包装IllegalAccessException异常public static Object[] getFieldsValue(Object obj)
obj
- bean对象,如果是static字段,此处为类classpublic static Object[] getFieldsValue(Object obj, Predicate<Field> filter)
obj
- bean对象,如果是static字段,此处为类classfilter
- 字段过滤器,null
返回原集合public static void setFieldValue(Object obj, String fieldName, Object value) throws HutoolException
obj
- 对象,static字段则此处传ClassfieldName
- 字段名value
- 值,值类型必须与字段类型匹配,不会自动转换对象类型HutoolException
- 包装IllegalAccessException异常public static void setStaticFieldValue(Field field, Object value) throws HutoolException
field
- 字段value
- 值,值类型必须与字段类型匹配,不会自动转换对象类型HutoolException
- UtilException 包装IllegalAccessException异常public static void setFieldValue(Object obj, Field field, Object value) throws HutoolException
obj
- 对象,如果是static字段,此参数为nullfield
- 字段value
- 值,类型不匹配会自动转换对象类型HutoolException
- UtilException 包装IllegalAccessException异常public static void setFieldValue(Object obj, Field field, Object value, Converter converter) throws HutoolException
obj
- 对象,如果是static字段,此参数为nullfield
- 字段value
- 值,类型不匹配会自动转换对象类型converter
- 转换器,用于转换给定value为字段类型,null
表示不转换HutoolException
- UtilException 包装IllegalAccessException异常Copyright © 2025. All rights reserved.