gpt4 book ai didi

java - 在不使用 instanceof 运算符的情况下在 java 中打印嵌套映射

转载 作者:行者123 更新时间:2023-11-30 07:42:38 25 4
gpt4 key购买 nike

我有一个字符串对象的映射:

Map<String, Object> someMap

映射可以包含值列表、映射、空值、字符串或任何其他值。

我想将我的 map 打印成一张平面 map 。

例如:

输入 map :

{"a":"a1","b":"b1","c":"c1", "d":{"e":"e1","f":{"g":"g1"},"h":"h1"},"i":"i1","j":[{"k":"k1"},{"l":"l1"}],"m":"m1","n":null}


输出字符串:

"a="a1" b="b1" c="c1" e="e1" g="g1" h="h1" i="i1" k="k1" l="l1" m="m1""

有没有一种方法可以不使用 instanceof 来处理不同的对象?

最佳答案

不知道这是否正是您要找的。根据定义,每个 Object 都必须实现 toString()。只有一种特殊情况:对于 null 值,toString 会导致 NullPointerException

@Test
public void testId(){
Map<String, Object> someMap = new HashMap<>();
someMap.put("1", null);
someMap.put("2", asList(1,2,3,4));
someMap.put("3", 3);
someMap.put("4", "Hello World! Greetings from Germany <3");

someMap.entrySet().stream().filter(entry -> entry.getValue() != null)
.forEach(entry -> System.out.println(entry.getKey()
.concat("=")
.concat(entry.getValue().toString())));
}

导致:

2=[1, 2, 3, 4]
3=3
4=Hello World! Greetings from Germany <3

在这种情况下,null 值将被过滤!

关于java - 在不使用 instanceof 运算符的情况下在 java 中打印嵌套映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54331884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com