报告当Runnable 传递给 Cleaner.register() 捕获引用时会导致内存泄漏的情况。

此问题的可能来源:

将报告的代码示例:


  int fileDescriptor;
  Cleaner.Cleanable cleanable = Cleaner.create().register(this, () -> {
    System.out.println("adsad");
    //this 是通过 fileDescriptor 捕获的
    fileDescriptor = 0;
  });

仅当项目或模块的语言级别为 9 或更高时才报告此检查。

2018.1 的新功能