Inspectopedia Help

'ThreadLocal' field not declared 'static final'

Reports fields of type java.lang.ThreadLocal that are not declared static final.

In the most common case, a java.lang.ThreadLocal instance associates state with a thread. A non-static non-final java.lang.ThreadLocal field associates state with an instance-thread combination. This is usually unnecessary and quite often is a bug that can cause memory leaks and incorrect behavior.

A quick-fix is suggested to make the field static final.

Example:

private ThreadLocal tl = ThreadLocal.withInitial(() -> Boolean.TRUE);

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024