public class BeanUtils extends Object
| Constructor and Description |
|---|
BeanUtils() |
| Modifier and Type | Method and Description |
|---|---|
static Map<String,Object> |
beanToMap(Object bean)
对象转Map,不进行驼峰转下划线,不忽略值为空的字段
|
static Map<String,Object> |
beanToMap(Object bean,
boolean isToUnderlineCase,
boolean ignoreNullValue)
对象转Map
|
static Map<String,Object> |
beanToMap(Object bean,
Map<String,Object> targetMap,
boolean isToUnderlineCase,
boolean ignoreNullValue)
对象转Map
|
static Map<String,Object> |
beanToMap(Object bean,
Map<String,Object> targetMap,
boolean ignoreNullValue,
Editor<String> keyEditor)
对象转Map
通过实现
Editor 可以自定义字段值,如果这个Editor返回null则忽略这个字段,以便实现: |
static void |
copyProperties(Object source,
Object target)
复制Bean对象属性
|
static void |
copyProperties(Object source,
Object target,
boolean ignoreCase)
复制Bean对象属性
|
static void |
copyProperties(Object source,
Object target,
CopyOptions copyOptions)
复制Bean对象属性
限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类
|
static void |
copyProperties(Object source,
Object target,
String... ignoreProperties)
复制Bean对象属性
限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类
|
static DynaBean |
create(Object bean)
创建动态Bean
|
static <T> T |
fillBean(T bean,
ValueProvider<String> valueProvider,
CopyOptions copyOptions)
填充Bean的核心方法
|
static <T> T |
fillBeanWithMap(Map<?,?> map,
T bean,
boolean isIgnoreError)
使用Map填充Bean对象
|
static <T> T |
fillBeanWithMap(Map<?,?> map,
T bean,
boolean isToCamelCase,
boolean isIgnoreError)
使用Map填充Bean对象,可配置将下划线转换为驼峰
|
static <T> T |
fillBeanWithMap(Map<?,?> map,
T bean,
boolean isToCamelCase,
CopyOptions copyOptions)
使用Map填充Bean对象
|
static <T> T |
fillBeanWithMap(Map<?,?> map,
T bean,
CopyOptions copyOptions)
使用Map填充Bean对象
|
static <T> T |
fillBeanWithMapIgnoreCase(Map<?,?> map,
T bean,
boolean isIgnoreError)
使用Map填充Bean对象,忽略大小写
|
static PropertyEditor |
findEditor(Class<?> type)
查找类型转换器
PropertyEditor |
static BeanDesc |
getBeanDesc(Class<?> clazz)
获取
BeanDesc Bean描述信息 |
static Object |
getFieldValue(Object bean,
String fieldNameOrIndex)
获得字段值,通过反射直接获得字段值,并不调用getXXX方法
对象同样支持Map类型,fieldNameOrIndex即为key
|
static Object |
getProperty(Object bean,
String expression)
解析Bean中的属性值
|
static PropertyDescriptor |
getPropertyDescriptor(Class<?> clazz,
String fieldName)
获得Bean类属性描述,大小写敏感
|
static PropertyDescriptor |
getPropertyDescriptor(Class<?> clazz,
String fieldName,
boolean ignoreCase)
获得Bean类属性描述
|
static Map<String,PropertyDescriptor> |
getPropertyDescriptorMap(Class<?> clazz,
boolean ignoreCase)
获得字段名和字段描述Map,获得的结果会缓存在
BeanInfoCache中 |
static PropertyDescriptor[] |
getPropertyDescriptors(Class<?> clazz)
获得Bean字段描述数组
|
static boolean |
hasGetter(Class<?> clazz)
判断是否为Bean对象
判定方法是是否存在只有一个参数的setXXX方法
|
static boolean |
hasNull(Object bean)
判断Bean中是否有值为null的字段
|
static boolean |
hasNullField(Object bean)
判断Bean是否包含值为
null的属性
对象本身为null也返回true |
static boolean |
hasNullField(Object bean,
String... ignoreFiledNames)
判断Bean是否包含值为
null的属性
对象本身为null也返回true |
static boolean |
hasPublicField(Class<?> clazz)
指定类中是否有public类型字段(static字段除外)
|
static boolean |
hasSetter(Class<?> clazz)
判断是否有Setter方法
判定方法是是否存在只有一个参数的setXXX方法
|
static boolean |
isBean(Class<?> clazz)
判断是否为Bean对象
判定方法是是否存在只有一个参数的setXXX方法
|
static boolean |
isEmpty(Object bean,
String... ignoreFiledNames)
判断Bean是否为空对象,空对象表示本身为
null或者所有属性都为null |
static boolean |
isMatchName(Object bean,
String beanClassName,
boolean isSimple)
给定的Bean的类名是否匹配指定类名字符串
如果isSimple为
false,则只匹配类名而忽略包名
如果isSimple为true,则匹配包括包名的全类名 |
static boolean |
isNotEmpty(Object bean,
String... ignoreFiledNames)
判断Bean是否为非空对象,非空对象表示本身不为
null或者含有非null属性的对象 |
static <T> T |
mapToBean(Map<?,?> map,
Class<T> beanClass,
boolean isIgnoreError)
Map转换为Bean对象
|
static <T> T |
mapToBean(Map<?,?> map,
Class<T> beanClass,
CopyOptions copyOptions)
Map转换为Bean对象
|
static <T> T |
mapToBeanIgnoreCase(Map<?,?> map,
Class<T> beanClass,
boolean isIgnoreError)
Map转换为Bean对象
忽略大小写
|
static void |
setFieldValue(Object bean,
String fieldNameOrIndex,
Object value)
设置字段值,,通过反射设置字段值,并不调用setXXX方法
对象同样支持Map类型,fieldNameOrIndex即为key
|
static void |
setProperty(Object bean,
String expression,
Object value)
解析Bean中的属性值
|
static <T> T |
toBean(Class<T> beanClass,
ValueProvider<String> valueProvider,
CopyOptions copyOptions)
ServletRequest 参数转Bean
|
static <T> T |
toBean(Object source,
Class<T> clazz)
对象或Map转Bean
|
static <T> T |
trimStrField(T bean,
String... ignoreField)
把Bean里面的String属性做trim操作
|
public static boolean isBean(Class<?> clazz)
clazz - 待测试类public static boolean isEmpty(Object bean, String... ignoreFiledNames)
null或者所有属性都为nullbean - Bean对象ignoreFiledNames - 忽略检查的字段名true - 空 / false - 非空public static boolean isNotEmpty(Object bean, String... ignoreFiledNames)
null或者含有非null属性的对象bean - Bean对象ignoreFiledNames - 忽略检查的字段名true - 空 / false - 非空public static boolean hasNull(Object bean)
bean - Beanpublic static boolean hasSetter(Class<?> clazz)
clazz - 待测试类public static boolean hasGetter(Class<?> clazz)
clazz - 待测试类public static boolean hasPublicField(Class<?> clazz)
clazz - 待测试类public static boolean hasNullField(Object bean, String... ignoreFiledNames)
null的属性
对象本身为null也返回truebean - Bean对象ignoreFiledNames - 忽略检查的字段名null的属性,true - 包含 / false - 不包含public static boolean hasNullField(Object bean)
null的属性
对象本身为null也返回truebean - Bean对象null的属性,true - 包含 / false - 不包含public static <T> T trimStrField(T bean,
String... ignoreField)
通常bean直接用来绑定页面的input,用户的输入可能首尾存在空格,通常保存数据库前需要把首尾空格去掉
T - Bean类型bean - Bean对象ignoreField - 不需要trim的Field名称列表(不区分大小写)public static DynaBean create(Object bean)
bean - 普通Bean或MapDynaBeanpublic static PropertyEditor findEditor(Class<?> type)
PropertyEditortype - 需要转换的目标类型PropertyEditorpublic static BeanDesc getBeanDesc(Class<?> clazz)
BeanDesc Bean描述信息clazz - Bean类BeanDescpublic static PropertyDescriptor[] getPropertyDescriptors(Class<?> clazz) throws InstrumentException
clazz - Bean类InstrumentException - 获取属性异常public static Map<String,PropertyDescriptor> getPropertyDescriptorMap(Class<?> clazz, boolean ignoreCase)
BeanInfoCache中clazz - Bean类ignoreCase - 是否忽略大小写public static PropertyDescriptor getPropertyDescriptor(Class<?> clazz, String fieldName)
clazz - Bean类fieldName - 字段名public static PropertyDescriptor getPropertyDescriptor(Class<?> clazz, String fieldName, boolean ignoreCase)
clazz - Bean类fieldName - 字段名ignoreCase - 是否忽略大小写public static Object getFieldValue(Object bean, String fieldNameOrIndex)
bean - Bean对象fieldNameOrIndex - 字段名或序号,序号支持负数public static void setFieldValue(Object bean, String fieldNameOrIndex, Object value)
bean - BeanfieldNameOrIndex - 字段名或序号,序号支持负数value - 值public static Object getProperty(Object bean, String expression)
bean - Bean对象,支持Map、List、Collection、Arrayexpression - 表达式,例如:person.friend[5].nameBeanPath.get(Object)public static void setProperty(Object bean, String expression, Object value)
bean - Bean对象,支持Map、List、Collection、Arrayexpression - 表达式,例如:person.friend[5].namevalue - 值BeanPath.get(Object)public static <T> T toBean(Object source, Class<T> clazz)
T - Bean类型source - Bean对象或Mapclazz - 目标的Bean类型public static <T> T toBean(Class<T> beanClass, ValueProvider<String> valueProvider, CopyOptions copyOptions)
T - Bean类型beanClass - Bean ClassvalueProvider - 值提供者copyOptions - 拷贝选项,见 CopyOptionspublic static <T> T mapToBean(Map<?,?> map, Class<T> beanClass, boolean isIgnoreError)
T - Bean类型map - MapbeanClass - Bean ClassisIgnoreError - 是否忽略注入错误public static <T> T mapToBean(Map<?,?> map, Class<T> beanClass, CopyOptions copyOptions)
T - Bean类型map - MapbeanClass - Bean ClasscopyOptions - 转Bean选项public static <T> T mapToBeanIgnoreCase(Map<?,?> map, Class<T> beanClass, boolean isIgnoreError)
T - Bean类型map - MapbeanClass - Bean ClassisIgnoreError - 是否忽略注入错误public static <T> T fillBean(T bean,
ValueProvider<String> valueProvider,
CopyOptions copyOptions)
T - Bean类型bean - BeanvalueProvider - 值提供者copyOptions - 拷贝选项,见 CopyOptionspublic static <T> T fillBeanWithMap(Map<?,?> map, T bean, boolean isIgnoreError)
T - Bean类型map - Mapbean - BeanisIgnoreError - 是否忽略注入错误public static <T> T fillBeanWithMap(Map<?,?> map, T bean, boolean isToCamelCase, boolean isIgnoreError)
T - Bean类型map - Mapbean - BeanisToCamelCase - 是否将下划线模式转换为驼峰模式isIgnoreError - 是否忽略注入错误public static <T> T fillBeanWithMapIgnoreCase(Map<?,?> map, T bean, boolean isIgnoreError)
T - Bean类型map - Mapbean - BeanisIgnoreError - 是否忽略注入错误public static <T> T fillBeanWithMap(Map<?,?> map, T bean, CopyOptions copyOptions)
T - Bean类型map - Mapbean - BeancopyOptions - 属性复制选项 CopyOptionspublic static <T> T fillBeanWithMap(Map<?,?> map, T bean, boolean isToCamelCase, CopyOptions copyOptions)
T - Bean类型map - Mapbean - BeanisToCamelCase - 是否将Map中的下划线风格key转换为驼峰风格copyOptions - 属性复制选项 CopyOptionspublic static Map<String,Object> beanToMap(Object bean)
bean - bean对象public static Map<String,Object> beanToMap(Object bean, boolean isToUnderlineCase, boolean ignoreNullValue)
bean - bean对象isToUnderlineCase - 是否转换为下划线模式ignoreNullValue - 是否忽略值为空的字段public static Map<String,Object> beanToMap(Object bean, Map<String,Object> targetMap, boolean isToUnderlineCase, boolean ignoreNullValue)
bean - bean对象targetMap - 目标的MapisToUnderlineCase - 是否转换为下划线模式ignoreNullValue - 是否忽略值为空的字段public static Map<String,Object> beanToMap(Object bean, Map<String,Object> targetMap, boolean ignoreNullValue, Editor<String> keyEditor)
Editor 可以自定义字段值,如果这个Editor返回null则忽略这个字段,以便实现:
1. 字段筛选,可以去除不需要的字段 2. 字段变换,例如实现驼峰转下划线 3. 自定义字段前缀或后缀等等
bean - bean对象targetMap - 目标的MapignoreNullValue - 是否忽略值为空的字段keyEditor - 属性字段(Map的key)编辑器,用于筛选、编辑keypublic static void copyProperties(Object source, Object target)
source - 源Bean对象target - 目标Bean对象public static void copyProperties(Object source, Object target, String... ignoreProperties)
source - 源Bean对象target - 目标Bean对象ignoreProperties - 不拷贝的的属性列表public static void copyProperties(Object source, Object target, boolean ignoreCase)
source - 源Bean对象target - 目标Bean对象ignoreCase - 是否忽略大小写public static void copyProperties(Object source, Object target, CopyOptions copyOptions)
source - 源Bean对象target - 目标Bean对象copyOptions - 拷贝选项,见 CopyOptionsCopyright © 2020. All rights reserved.