public class BeanUtils {
private final static String STRINGCLASS = "";
private final static Long LONGCLASS = new Long(0);
private final static Date DATECLASS = new Date();
/**
* 将Map集合中的数据封装到JavaBean对象中
* map的key为全小写
* bean属性驼峰
* @param map 集合
* @param classType 封装javabean对象
* @return
* @throws Exception
*/
public static <T> T map2bean(Map<String, String> map,Class<T> classType) throws Exception {
// 1 采用反射动态创建对象
T obj = classType.newInstance();
// 2 获取对象字节码信息,不要Object的属性
BeanInfo beanInfo = Introspector.getBeanInfo(classType,Object.class);
// 3 获取bean对象中的所有属性
PropertyDescriptor[] list = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor pd : list) {
// 3.1 获取属性名
String key = pd.getName();
// 3.2 获取属性值:属性值在map中全部存的小写
Object value = map.get(key.toLowerCase());
// 3.3 转换数据类型
if (value != null && StringUtils.isNotBlank(value.toString())) {
Class<?> propertyType = pd.getPropertyType();
if (propertyType.isInstance(STRINGCLASS)) { // 转换成String类型
value = (String) value;
}
if (propertyType.isInstance(LONGCLASS)) { // 转换成Long类型
value = Long.parseLong((String) value);
}
if (propertyType.isInstance(DATECLASS)) {// 转换成日期类型
value = DateUtils.parseDate((String) value);
}
pd.getWriteMethod().invoke(obj, propertyType.cast(value)); //调用属性setter()方法,设置到javabean对象当中
}
}
return obj;
}
public static void main(String[] args) throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("username", "13997245778");
map.put("password", "1");
map2bean(map, SeContact.class);
}
}
beanutils 把小写字段转成驼峰
最新推荐文章于 2025-01-14 12:22:52 发布
本文介绍了如何使用Java的BeanUtils库将对象中属性名小写的形式转换为驼峰式命名,详细讲解了转换过程并提供了一个实际示例。
574

被折叠的 条评论
为什么被折叠?



