Runnable
传递给 Cleaner.register()
捕获引用时会导致内存泄漏的情况。
此问题的可能来源:
this
本身的 lambda将报告的代码示例:
int fileDescriptor;
Cleaner.Cleanable cleanable = Cleaner.create().register(this, () -> {
System.out.println("adsad");
//this 是通过 fileDescriptor 捕获的
fileDescriptor = 0;
});
仅当项目或模块的语言级别为 9 或更高时才报告此检查。
2018.1 的新功能