首页 > 解决方案 > 是否有一种单行方式来编写相同的代码,但在 Java 8 中使用某种类型的可变映射?

问题描述

  private Map<String,Object> contactQuestion = ImmutableMap.of("pageForm","contactInfo", "questionList",Arrays.asList(ImmutableMap.of("active",false)));

我在 JUnit 测试的类级别定义了这个变量,但我意识到我需要映射是可变的。我最初使用 ImmutableMap 类编写代码,因为它提供了这种方便的内嵌地图构建方式。我发现在我的测试中我实际上需要改变这些地图。我尝试使用 HashMap 但 HashMap 似乎没有任何类似于 ImmutableMap 的功能of()。这里有一些聪明的选择吗?

感谢您的任何建议

标签: javahashmapmapsimmutabilitymutable

解决方案


不确定,ImmutableMap.of但从 JDK 9 开始

  private Map<String,Object> contactQuestion = new HashMap<> 
     (Map.of("pageForm","contactInfo", 
          "questionList",Arrays.asList(Map.of("active",false))));

对于每一个,如果您希望它们都是可变的,则Map.of需要将其传递给实现。Map


推荐阅读