谁能解释一下我们在哪种情况下使用静态初始块?
问问题
115 次
5 回答
6
您可以将其用作类中静态数据的“构造函数”。例如,常见的情况可能是设置特殊单词列表:
private static final Set<String> special = new HashSet<String>();
static {
special.add("Java");
special.add("C++");
...
}
然后可以稍后使用这些来检查字符串是否匹配有趣的内容。
于 2012-12-21T21:24:20.433 回答
3
最常见的场景是在类加载时加载一些资源,例如为 JNI 加载库
于 2012-12-21T21:22:23.517 回答
0
另一个常见的情况是当您需要用于创建静态的某些代码引发异常时。
于 2012-12-21T21:23:59.623 回答
0
另一个例子是 java.lang.Object
public class Object {
private static native void registerNatives();
static {
registerNatives();
}
...
于 2012-12-22T01:24:12.367 回答
-2
我一直使用它们来初始化列表和地图。
List<String> myList = new ArrayList<String>(){{
add("blah");
add("blah2");
}};
for(String s : myList){
System.out.println(s);
}
于 2012-12-21T21:25:46.660 回答