提问人:intA 提问时间:8/1/2020 更新时间:8/1/2020 访问量:302
在 Java 8 中,有没有一种单行方法可以编写相同的代码,但使用某种类型的可变映射?
Is there a one-line way to write this same code but using some type of mutable map in Java 8?
问:
private Map<String,Object> contactQuestion = ImmutableMap.of("pageForm","contactInfo", "questionList",Arrays.asList(ImmutableMap.of("active",false)));
我在 JUnit 测试中在类级别定义了这个变量,但我意识到我需要映射是可变的。我最初使用 ImmutableMap 类编写代码,因为它提供了这种方便的内联构建地图的方法。我发现在我的测试中,我实际上需要改变这些地图。我尝试使用 HashMap,但 HashMap 似乎没有任何类似于 ImmutableMap 的函数。这里有什么聪明的选择吗?of()
感谢您的任何建议
答:
2赞
WJS
8/1/2020
#1
不确定,但自 JDK 9 以来ImmutableMap.of
private Map<String,Object> contactQuestion = new HashMap<>
(Map.of("pageForm","contactInfo",
"questionList",Arrays.asList(Map.of("active",false))));
对于每个实现,如果您希望它们都是可变的,则需要将其传递给实现。Map.of
Map
评论
0赞
intA
8/1/2020
谢谢,是的,将其包装在新的 HashMap<>() 中起作用了。有点乱,但它有效。
评论
new HashMap(ImmutableMap.of(...))
class Question