Cleaner.register()에 전달된 Runnable을 보고합니다.
참조가 캡처되면 도달할 수 없는 팬텀이 되며 정리 액션이 호출되지 않습니다.
이 문제의 가능한 원인은 다음과 같습니다.
this 자체를 사용하는 람다보고되는 코드 샘플:
int fileDescriptor;
Cleaner.Cleanable cleanable = Cleaner.create().register(this, () -> {
System.out.println("adsad");
//this는 fileDescriptor를 통해 캡처됩니다
fileDescriptor = 0;
});
이 검사는 프로젝트 또는 모듈의 언어 수준이 9 이상인 경우에만 보고합니다.
2018.1의 새로운 기능