static final で宣言されていない java.lang.ThreadLocal 型フィールドを報告します。

一般的に、java.lang.ThreadLocal インスタンスはスレッドの状態と関連付いています。 非 static で非 final の java.lang.ThreadLocal フィールドは、インスタンスとスレッドの組み合わせの状態と関連付いています。 これは通常不要であり、多くの場合はメモリリークや誤動作を引き起こす可能性があるバグです。

フィールドを static final にするクイックフィックスが提案されます。

例:


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