Cómo inicializar objetos ThreadLocal en Java

Tengo un problema en el que estoy creando un ThreadLocal e inicializándolo con el nuevo ThreadLocal. El problema es que, en realidad, solo quiero una lista persistente que dure la vida del hilo, pero no sé si hay una manera de inicializar algo por hilo en Java.

P.ej. Lo que quiero es algo como:

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

Para que se inicialice para cada hilo. Sé que puedo hacerlo:

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

pero realmente preferiría no tener que verificar eso cada vez que se usa. ¿Hay algo mejor que pueda hacer aquí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta