Object转Map工具类
时间: 2023-11-13 20:04:47 浏览: 83
请问你知道如何实现吗?
可以使用 Java 的反射机制,获取对象中的所有属性,然后将属性及其对应的值存储到一个 Map 中。示例代码如下:
```java
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
public class ObjectToMapUtil {
public static Map<String, Object> convertObjectToMap(Object obj) {
Map<String, Object> map = new HashMap<>();
Class<?> clazz = obj.getClass();
// 获取所有字段,包括公有和私有字段
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
// 设置私有属性可访问
field.setAccessible(true);
try {
// 将属性及其对应的值存储到 map 中
map.put(field.getName(), field.get(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}
}
```
使用方法如下:
```java
public class Main {
public static void main(String[] args) {
User user = new User("Alice", 20, "female");
Map<String, Object> map = ObjectToMapUtil.convertObjectToMap(user);
System.out.println(map);
}
}
class User {
private String name;
private int age;
private String gender;
public User(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
```
输出结果为: `{name=Alice, age=20, gender=female}`
阅读全文