java 反射 map转bean
时间: 2023-08-29 07:09:01 浏览: 102
你可以使用 Java 的反射机制来将 Map 转换为 Bean。以下是一个简单的示例代码:
```
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
public class MapToBeanConverter {
public static <T> T convert(Map<String, Object> map, Class<T> beanClass) throws Exception {
T bean = beanClass.getDeclaredConstructor().newInstance();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String fieldName = entry.getKey();
Object fieldValue = entry.getValue();
Field field = beanClass.getDeclaredField(fieldName);
field.setAccessible(true);
field.set(bean, fieldValue);
}
return bean;
}
public static void main(String[] args) throws Exception {
Map<String, Object> map = new HashMap<>();
map.put("name", "John");
map.put("age", 30);
map.put("city", "New York");
Person person = convert(map, Person.class);
System.out.println(person.getName()); // Output: John
System.out.println(person.getAge()); // Output: 30
System.out.println(person.getCity()); // Output: New York
}
}
class Person {
private String name;
private int age;
private String city;
// Getters and setters
}
```
在上面的代码中,`convert` 方法接收一个 `Map` 和目标 Bean 的 `Class` 对象作为参数,并使用反射来设置目标 Bean 的属性值。注意,目标 Bean 的属性名称必须与 Map 的键相匹配。
阅读全文