使用第三方库 java对象转map
时间: 2023-07-30 07:10:13 浏览: 170
将对象变成map
如果你使用的是Java 8及以上版本,可以使用Stream API来实现将Java对象转换为Map。
下面是一个示例代码:
```java
public static <T> Map<String, Object> objectToMap(T obj) {
try {
return Arrays.stream(obj.getClass().getDeclaredFields())
.peek(f -> f.setAccessible(true))
.collect(Collectors.toMap(Field::getName, f -> {
try {
return f.get(obj);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}));
} catch (Exception e) {
throw new RuntimeException(e);
}
}
```
这个方法使用了Java的反射机制,首先获取对象的所有字段,然后通过Stream API将其转换为Map。在转换过程中,通过访问字段的get方法获取字段的值。
如果你需要将对象的所有父类字段也转换为Map,可以使用下面的方法:
```java
public static <T> Map<String, Object> objectToMapWithSuperclass(T obj) {
Map<String, Object> result = new HashMap<>();
Class<?> clazz = obj.getClass();
while (clazz != null) {
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
try {
result.put(field.getName(), field.get(obj));
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
clazz = clazz.getSuperclass();
}
return result;
}
```
这个方法使用了一个while循环,从当前类开始,逐级获取所有父类的字段,并将其转换为Map。
阅读全文