我在创建 ThreadLocal 并使用 new ThreadLocal 对其进行初始化时遇到问题。问题是,我真的在概念上只是想要一个持续线程生命的持久列表,但我不知道是否有办法在 Java 中为每个线程初始化一些东西。
例如,我想要的是这样的:
ThreadLocal static {
myThreadLocalVariable.set(new ArrayList<Whatever>());
}
这样它就为每个线程初始化它。我知道我可以这样做:
private static Whatever getMyVariable() {
Whatever w = myThreadLocalVariable.get();
if(w == null) {
w = new ArrayList<Whatever>();
myThreadLocalVariable.set(w);
}
return w;
}
但我真的宁愿不必在每次使用时都对其进行检查。有什么更好的我可以在这里做的吗?