Jak zainicjować obiekty ThreadLocal w Javie

Mam problem z tworzeniem ThreadLocal i inicjowaniem go za pomocą nowego ThreadLocal. Problem polega na tym, że naprawdę po prostu chcę mieć trwałą listę, która przetrwa życie wątku, ale nie wiem, czy istnieje sposób na zainicjowanie czegoś na wątek w Javie.

Na przykład. czego chcę to:

ThreadLocal static {
  myThreadLocalVariable.set(new ArrayList<Whatever>());
}

Aby zainicjować go dla każdego wątku. Wiem, że potrafię to zrobić:

private static Whatever getMyVariable() {
  Whatever w = myThreadLocalVariable.get();
  if(w == null) {
    w = new ArrayList<Whatever>();
    myThreadLocalVariable.set(w);
  }
  return w; 
}

ale naprawdę wolałbym nie sprawdzać tego za każdym razem, gdy jest używany. Czy mogę zrobić coś lepszego?

questionAnswers(3)

yourAnswerToTheQuestion