StringBuilder, StringBuffer 및 java.util.concurrent.atomic 패키지의 인스턴스에서 equals() 호출을 보고합니다.
해당 클래스에서 equals() 메서드는 재정의되지 않으므로 두 객체의 내용이 동일한 경우에도 false를 반환할 수 있습니다.
의도한 참조 동등성이라면 ==를 사용하여 혼동을 피하는 것이 좋습니다.
StringBuilder, StringBuffer, AtomicBoolean,
AtomicInteger, AtomicBoolean 및 AtomicLong에 대한 빠른 수정을 사용하여 내용 비교로 변환할 수 있습니다.
이 빠른 수정은 인스턴스 중 하나가 null일 경우 의미를 바꿀 수 있습니다.
예:
public void test(StringBuilder sb1, StringBuilder sb2) {
boolean result = sb1.equals(sb2); // Suspicious
}
빠른 수정을 적용한 후:
public void test(StringBuilder sb1, StringBuilder sb2) {
boolean result = sb1.toString().equals(sb2.toString());
}
2017.2의 새로운 기능