Files.exists
메서드는 JDK 8에서 성능이 현저히 떨어지는것으로 알려져있습니다.
실제로 존재하지 않는 파일을 검사하는 데 이 메소드를 사용할 경우, 애플리케이션의 속도가 상당히 느려질 수 있습니다.
java.nio.file
패키지 아래에 있는 Files.notExists
, Files.isDirectory
및 Files.isRegularFile
도 마찬가지입니다.
참고: 이 규칙은 프로젝트의 sonar.java.source의 값이 8보다 낮은 경우(java8) 검사하지 않습니다.
규칙을 어긴 코드
Path myPath;
if(java.nio.file.Files.exists(myPath)) { // 규칙을 어긴 코드
// do something
}
규칙을 준수한 해결책
Path myPath;
if(myPath.toFile().exists())) {
// do something
}
같이보면 좋은 자료
- https://bugs.openjdk.java.net/browse/JDK-8153414
- https://bugs.openjdk.java.net/browse/JDK-8154077
If you like SONARKUBE, don’t forget to give me a star.