java静态哈希映射初始化
我有这门课,我想知道:
1°这是定义静态HashMasp的最佳方式吗
2°在基于Spring的应用程序中,这是最好的方法吗?(Spring提供了更好的方法吗?)
提前谢谢
public class MyHashMap {
private static final Map<Integer, String> myMap;
static {
Map<CustomEnum, String> aMap = new HashMap<CustomEnum, String>();
aMap.put(CustomEnum.UN, "one");
aMap.put(CustomEnum.DEUX, "two");
myMap = Collections.unmodifiableMap(aMap);
}
public static String getValue(CustomEnum id){
return myMap.get(id);
}
}
System.out.println(MyHashMap.getValue(CustomEnum.UN));
# 1 楼答案
你可以使用番石榴图书馆。但如果您不想使用第三方库,则有两种方法:
静态初始值设定项
实例初始化器(匿名子类)
假设稍后您想要向映射添加一些常量,那么您也可以这样做
收藏。不可修改的地图:有一个不可修改的地图视图,这有助于不可修改。因为它给出了不支持的异常,如果对映射进行了任何修改
# 2 楼答案
有几种方法可以做到这一点。例如,如果您的映射是不可变的,则可以考虑使用Google Guava libraries。 它有一个ImmutableMap类,可用于将地图构造为:-
如果您已经在使用Spring Framework并使用XML连接bean,那么您可以通过XML直接填充映射,如下所示:-