static
变量。
应该使用适当的同步构造来完成 static
变量的延迟初始化,以防止不同的线程执行冲突的初始化。
如果适用,建议使用引入初始化 holder 类习惯用法的快速修复。 这个习惯用法利用了 JVM 会保证类在使用之前不会被初始化的事实。
示例:
class X {
private static List<String> list;
public List<String> getList() {
if (list == null) {
list = List.of("one", "two", "tree");
}
return list;
}
}
在应用快速修复后:
class X {
private static final class ListHolder {
static final List<String> list = List.of("one", "two", "tree");
}
public List<String> getList() {
return ListHolder.list;
}
}