'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 | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023