登録されている参照をキャプチャしている Cleaner.register() に渡されている Runnable を報告します。 参照がキャプチャされた場合、参照は到達不可能なファントムになり、クリーニングアクションは呼び出されません。

この問題は以下が原因で起こる可能性があります。

以下は報告されるコードのサンプルです。


  int fileDescriptor;
  Cleaner.Cleanable cleanable = Cleaner.create().register(this, () -> {
    System.out.println("adsad");
    //thisfileDescriptor 経由でキャプチャされています
    fileDescriptor = 0;
  });

このインスペクションは、プロジェクトまたはモジュールの言語レベルが 9 以上の場合にのみ報告します。

2018.1 の新機能です