object转map
时间: 2023-08-10 20:03:17 浏览: 201
可以使用Java 8的Stream API将Object转换为Map。假设我们有一个名为`Person`的类,该类有`name`和`age`字段,我们可以按照以下方式将其转换为Map:
```java
public class Person {
private String name;
private int age;
// 构造函数和getter/setter方法省略
}
Person person = new Person("John", 30);
Map<String, Object> map = Arrays.stream(Person.class.getDeclaredFields())
.peek(field -> field.setAccessible(true))
.collect(Collectors.toMap(Field::getName, field -> {
try {
return field.get(person);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}));
System.out.println(map); // 输出: {name=John, age=30}
```
这里使用了`Person.class.getDeclaredFields()`获取`Person`类的所有字段,然后使用`peek`方法将字段设置为可访问的,最后使用`Collectors.toMap`方法将字段名和字段值转换为Map。在获取字段值时,我们使用了`field.get(person)`方法获取`person`对象的对应字段值。
阅读全文