등록되어 있는 참조를 캡처하는 Cleaner.register()에 전달된 Runnable을 보고합니다. 참조가 캡처되면 도달할 수 없는 팬텀이 되며 정리 액션이 호출되지 않습니다.

이 문제의 가능한 원인은 다음과 같습니다.

보고되는 코드 샘플:


  int fileDescriptor;
  Cleaner.Cleanable cleanable = Cleaner.create().register(this, () -> {
    System.out.println("adsad");
    //thisfileDescriptor를 통해 캡처됩니다
    fileDescriptor = 0;
  });

이 검사는 프로젝트 또는 모듈의 언어 수준이 9 이상인 경우에만 보고합니다.

2018.1의 새로운 기능