표현식에 부수 효과가 없으며 Object.equals()에서 결과가 항상 동일한 경우 해당 표현식이 보고됩니다.
이러한 표현식의 예시는 a + b, Math.max(a, b), a.equals(b),
s.substring(a,b)입니다. 결과가 항상 동일한지 확인하기 위해, 표현식에 사용된 변수가 표현식의 찾은 항목 간의 값을 변경하지 않는지 검증됩니다.
이러한 표현식에는 String, BigDecimal과 같은 불변 클래스의 메서드 및 Objects, Math(random() 제외) 등의 유틸리티 클래스가 포함될 수 있습니다.
Object.equals(), Object.hashCode(), Object.toString(),
Comparable.compareTo() 및 Comparator.compare()처럼 잘 알려진 메서드 역시 일반적으로 눈에 띄는 부수 효과가 없으므로 적합합니다.
표현식 복잡성 임계값 옵션을 사용하여 표현식 복잡성의 최소 임계값을 지정합니다. 숫자를 더 크게 지정하면 짧은 표현식에 대한 보고가 제거됩니다.
Path.of 및 Paths.get 호출은 동일한 인수가 있는 경우 동등한 호출로 처리됩니다. 이러한 호출은 인수의 복잡도와 상관없이 항상 보고됩니다. 이 동작은 다른 복잡도 임곗값을 사용하여 조정할 수 있습니다.
2018.3의 새로운 기능