다음과 같은 복수의 java.io.File 연속 속성 확인을 보고합니다. 이러한 호출은 일괄 Files.readAttributes() 호출로 바꿀 수 있습니다. 일반적으로 이렇게 하는 것이 여러 개의 속성 검사를 개별적으로 하는 것보다 더 성능이 좋습니다.

예:


  boolean isNewFile(File file, long lastModified) throws IOException {
    return file.isFile() && file.lastModified() > lastModified;
  }

빠른 수정을 적용한 후:


  boolean isNewFile(File file, long lastModified) throws IOException {
    var fileAttributes = Files.readAttributes(file.toPath(), BasicFileAttributes.class);
    return fileAttributes.isRegularFile() && fileAttributes.lastModifiedTime().toMillis() > lastModified;
  }

IOException이 현재 컨텍스트에서 처리되지 않지만 빠른 수정이 여전히 사용 가능하면 이 검사에 경고가 표시되지 않습니다.

일반적으로 교체 코드는 완전히 동일하지 않으며 주의해서 적용해야 합니다. 특히 파일이 전혀 없는 경우에는 동작이 달라질 수 있습니다.

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

2022.1의 새로운 기능