Java 如何初始化静态地图?
你将如何Map
在Java中初始化静态变量?
方法一:静态初始化器
方法二:实例初始化器(匿名子类)或其他方法?
各自的优缺点是什么?
这是说明两种方法的示例:
import java.util.HashMap;import java.util.Map;
public class Test {
private static final Map<Integer, String> myMap = new HashMap<Integer, String>();
static {
myMap.put(1, "one");
myMap.put(2, "two");
}
private static final Map<Integer, String> myMap2 = new HashMap<Integer, String>(){
{
put(1, "one");
put(2, "two");
}
};
}
回答:
在这种情况下,实例初始化器只是语法糖,对吗?我不明白为什么你只需要一个额外的匿名类即可进行初始化。如果正在创建的类是最终的,那将是行不通的。
你也可以使用静态初始化程序创建不可变映射:
public class Test { private static final Map<Integer, String> myMap;
static {
Map<Integer, String> aMap = ....;
aMap.put(1, "one");
aMap.put(2, "two");
myMap = Collections.unmodifiableMap(aMap);
}
}
以上是 Java 如何初始化静态地图? 的全部内容, 来源链接: utcz.com/qa/412615.html