如何对Map Map使用双括号初始化

时间:2019-03-12 10:02:25

标签: java java-8 java-9

我确实知道双括号初始化有其自身的隐性成本,但仍然存在一种初始化Map<String,Map<String,String>>()的方法。

我尝试过的事情:

Map<String, Map<String, String>> defaultSourceCode = new HashMap<String, Map<String, String>>(){
            {"a",new HashMap<String, String>(){{"c","d"}}}
        };

我知道这是一个不好的做法,但至于实验,我正在尝试。

参考和动机: Arrays.asList also for maps?

1 个答案:

答案 0 :(得分:5)

几乎一切都很好,您只需在大括号中使用方法调用即可:

Map<String, Map<String, String>> defaultSourceCode = new HashMap<String, Map<String, String>>(){
    {put("a",new HashMap<String, String>(){{put("c","d");}});}
};

但是this answer描述了为什么不应该这样做。