这里写自定义目录标题
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
private static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {
T t = null;
try {
t = clazz.newInstance();
// map的key
for (Object o : map.keySet()) {
// map的key对应的属性
Field declaredField = clazz.getDeclaredField((String) o);
// 设置可见性为true
declaredField.setAccessible(true);
// setter
declaredField.set(t, map.get(o));
}
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
private static <T> T map2Object2(Map<String, Object> map, Class<T> clazz) {
T t = null;
try {
t = clazz.newInstance();
for(Map.Entry<String, Object> dataMap: map.entrySet()){
String keyString = dataMap.getKey();
Object vaString = dataMap.getValue();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
String name = field.getName();
if(keyString.equals(name)) {
Field declaredField = clazz.getDeclaredField((String) keyString);
declaredField.setAccessible(true);
declaredField.set(t, vaString);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return t;
}
本文深入探讨了Java中将Map数据结构转换为具体对象的方法,提供了两种实用的实现方案,包括直接通过反射机制进行属性赋值,以及利用Map的Entry集合进行更精细的字段匹配,是Java开发者不可多得的技术指南。

5192

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



