Object转map
时间: 2023-07-30 17:10:07 浏览: 110
将一个 Object 转为 Map,可以使用 Java 8 中的 Stream,具体代码如下:
```
Map<String, Object> map = obj.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
```
其中,obj 为要转换的 Object 对象。这里使用了 Java 8 中的 Stream,对 obj 中的每个键值对进行了映射,然后通过 Collectors.toMap() 方法将映射结果收集到一个 Map 中。
如果 obj 中包含重复的键,可以使用 mergeFunction 参数来指定如何处理冲突,例如:
```
Map<String, Object> map = obj.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1));
```
上面的代码中,当 obj 中出现重复的键时,保留第一个值。如果要保留第二个值,可以将 mergeFunction 参数改为 (v1, v2) -> v2。
相关问题
object 转 map
好的,这个问题是关于编程技术的,我可以为您解答。在 JavaScript 中,我们可以使用 Object.entries() 方法将 Object 转换为一个包含键值对的二维数组,然后再使用 Map 构造函数将其转化为 Map 数据结构。代码示例:
```
const obj = {a: 1, b: 2, c: 3};
const map = new Map(Object.entries(obj));
console.log(map);
```
这段代码将输出 Map(3) { 'a' => 1, 'b' => 2, 'c' => 3 }。
Object 转 Map
将一个 Object 转换为 Map 可以使用如下代码:
```java
public static <K, V> Map<K, V> objectToMap(Object obj) throws IllegalAccessException {
if (obj == null) {
return null;
}
Map<K, V> map = new HashMap<>();
Field[] declaredFields = obj.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
map.put((K) field.getName(), (V) field.get(obj));
}
return map;
}
```
这里使用反射获取对象的成员变量,然后将其转换为 Map。需要注意的是,这个方法只能将对象的公共成员变量转换为 Map,而私有成员变量需要使用 `getDeclaredFields()` 方法来获取。
阅读全文