スレッドセーフではない型の static フィールドへのアクセスを報告します。

static フィールドがインスタンスメソッドまたは非同期のブロックからアクセスされる場合、複数のスレッドがそのフィールドにアクセスできます。 これにより、例外や不正確な結果といった原因不明の副作用が発生する可能性があります。

例:


  class Sample {
    private static final SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String method() {
      return df.format("");
    }
  }

スレッドセーフではないと見なす型を指定できます。 指定した型、または指定した型で初期化されているフィールドのみが報告されます。指定した型のスレッドセーフなサブクラスが存在する可能性があるためです。