public class BeanUtils extends Object
把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。
| 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 |
createDynaBean(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 |
hasNull(Object bean)
判断Bean中是否有值为null的字段
|
static boolean |
hasNullField(Object bean)
判断Bean是否包含值为
null的属性对象本身为 null也返回true |
static boolean |
isBean(Class<?> clazz)
判断是否为Bean对象
判定方法是是否存在只有一个参数的setXXX方法 |
static boolean |
isEmpty(Object bean)
判断Bean是否为空对象,空对象表示本身为
null或者所有属性都为null |
static boolean |
isMatchName(Object bean,
String beanClassName,
boolean isSimple)
给定的Bean的类名是否匹配指定类名字符串
如果isSimple为 false,则只匹配类名而忽略包名如果isSimple为 true,则匹配包括包名的全类名 |
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 |
trimStrFields(T bean,
String... ignoreFields)
把Bean里面的String属性做trim操作。
|
public static boolean isBean(Class<?> clazz)
clazz - 待测试类public static DynaBean createDynaBean(Object bean)
bean - 普通Bean或MapDynaBeanpublic static PropertyEditor findEditor(Class<?> type)
PropertyEditortype - 需要转换的目标类型PropertyEditorpublic static boolean hasNull(Object bean)
bean - Beanpublic static BeanDesc getBeanDesc(Class<?> clazz)
BeanDesc Bean描述信息clazz - Bean类BeanDescpublic static PropertyDescriptor[] getPropertyDescriptors(Class<?> clazz) throws CommonException
clazz - Bean类CommonException - 获取属性异常public static Map<String,PropertyDescriptor> getPropertyDescriptorMap(Class<?> clazz, boolean ignoreCase) throws CommonException
BeanInfoCache中clazz - Bean类ignoreCase - 是否忽略大小写CommonException - 获取属性异常public static PropertyDescriptor getPropertyDescriptor(Class<?> clazz, String fieldName) throws CommonException
clazz - Bean类fieldName - 字段名CommonException - 获取属性异常public static PropertyDescriptor getPropertyDescriptor(Class<?> clazz, String fieldName, boolean ignoreCase) throws CommonException
clazz - Bean类fieldName - 字段名ignoreCase - 是否忽略大小写CommonException - 获取属性异常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 mapToBean(Map<?,?> map, Class<T> beanClass, boolean isIgnoreError)
T - Bean类型map - MapbeanClass - Bean ClassisIgnoreError - 是否忽略注入错误public static <T> T mapToBeanIgnoreCase(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 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 <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 fillBean(T bean,
ValueProvider<String> valueProvider,
CopyOptions copyOptions)
T - Bean类型bean - BeanvalueProvider - 值提供者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 - 拷贝选项,见 CopyOptionspublic static boolean isMatchName(Object bean, String beanClassName, boolean isSimple)
false,则只匹配类名而忽略包名true,则匹配包括包名的全类名bean - BeanbeanClassName - Bean的类名isSimple - 是否只匹配类名而忽略包名,true表示忽略包名public static <T> T trimStrFields(T bean,
String... ignoreFields)
通常bean直接用来绑定页面的input,用户的输入可能首尾存在空格,通常保存数据库前需要把首尾空格去掉
T - Bean类型bean - Bean对象ignoreFields - 不需要trim的Field名称列表(不区分大小写)public static boolean isEmpty(Object bean)
null或者所有属性都为nullbean - Bean对象true - 空 / false - 非空public static boolean hasNullField(Object bean)
null的属性null也返回truebean - Bean对象null的属性,true - 包含 / false - 不包含Copyright © 2019. All rights reserved.