下面是一个简单的示例,演示如何在Java中将Object和Map互相转换:
import java.util.*;
public class ObjectMapConversion {
public static void main(String[] args) {
// 创建一个对象
Person person = new Person("John", 30, "john@example.com");
// 将对象转换为Map
Map<String, Object> personMap = objectToMap(person);
System.out.println("Person as Map: " + personMap);
// 将Map转换为对象
Person personFromMap = mapToObject(personMap);
System.out.println("Person from Map: " + personFromMap);
}
// 将对象转换为Map
public static Map<String, Object> objectToMap(Object obj) {
Map<String, Object> map = new HashMap<>();
for (java.lang.reflect.Field field : obj.getClass().getDeclaredFields()) {
field.setAccessible(true);
try {
map.put(field.getName(), field.get(obj));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return map;
}
// 将Map转换为对象
public static Person mapToObject(Map<String, Object> map) {
Person person = new Person();
for (Map.Entry<String, Object> entry : map.entrySet()) {
try {
java.lang.reflect.Field field = person.getClass().getDeclaredField(entry.getKey());
field.setAccessible(true);
field.set(person, entry.getValue());
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
return person;
}
// 定义一个简单的Person类
static class Person {
private String name;
private int age;
private String email;
public Person() {
}
public Person(String name, int age, String email) {
this.name = name;
this.age = age;
this.email = email;
}
// toString方法用于方便输出对象内容
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", email='" + email + '\'' +
'}';
}
}
}