Java 如何初始化静态地图?

你将如何MapJava中初始化静态变量?

方法一:静态初始化器

方法二:实例初始化器(匿名子类)或其他方法?

各自的优缺点是什么?

这是说明两种方法的示例:

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

回到顶部