java LinkedHashMap 转对象
时间: 2023-10-26 19:08:00 浏览: 45
可以使用 Java 的反射机制来将 LinkedHashMap 转换为对象。
首先,需要创建一个类,该类的成员变量与 LinkedHashMap 中的键值对对应。然后,可以使用 LinkedHashMap 的 entrySet() 方法获取所有的键值对,并使用反射来将这些键值对设置到新创建的对象的成员变量中。
具体实现可以参考以下代码示例:
```
public static <T> T mapToObject(Map<String, Object> map, Class<T> clazz) throws Exception {
T obj = clazz.newInstance();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
Field field = clazz.getDeclaredField(key);
field.setAccessible(true);
field.set(obj, value);
}
return obj;
}
```
在上面的代码中,T 是需要转换的目标对象的类型,map 是 LinkedHashMap 对象,clazz 是目标对象的 Class 对象。
使用方法如下:
```
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
map.put("name", "John");
map.put("age", 30);
try {
Person person = mapToObject(map, Person.class);
System.out.println(person.getName()); // "John"
System.out.println(person.getAge()); // 30
} catch (Exception e) {
e.printStackTrace();
}
```
在这个示例中,Person 类应该具有名为 name 和 age 的成员变量。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)