object 转map
时间: 2023-09-26 10:08:01 浏览: 23
可以使用Java 8中的Stream API进行转换。例如,如果有一个对象Person,包含属性name和age,可以使用以下代码将其转换为一个Map:
```
Person person = new Person("Alice", 30);
Map<String, Object> map = Arrays.stream(person.getClass().getDeclaredFields())
.peek(f -> f.setAccessible(true))
.collect(Collectors.toMap(Field::getName, f -> {
try {
return f.get(person);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}));
System.out.println(map); // Output: {name=Alice, age=30}
```
需要注意的是,该方法只能将对象的所有属性都转换为Map中的键值对。如果需要更细粒度的控制,可以使用第三方库,例如Apache Commons BeanUtils中的转换方法。
相关问题
Object转map
将一个 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 }。
阅读全文