Avatar ·

如何在Java中初始化静态Map?最佳实践与示例

大家好!我是Java新手,遇到了一个问题。我需要创建一个静态的Map,用于存储一些常量值(例如,国家代码与其名称的对应关系)。我知道可以这样做: ```java public class MyClass { public static final Map countryCodes = new HashMap<>(); static { countryCodes.put("US", "United States"); countryCodes.put("RU", "Russia"); countryCodes.put("DE", "Germany"); } } ``` 但我觉得这不是最优雅的方式。首先,Map不是不可变的(immutable)——有人可能会意外修改它的内容。其次,我看到有些项目使用双大括号初始化(double brace initialization),但我听说这是一种不好的实践。第三,随着Java 9的发布,出现了像`Map.of()`这样的新方法,但我不确定如何正确使用它们。 请告诉我,有哪些现代且完