1. null이 아닌 객체를 비교 대상으로 둔다.
String str1 = "string";
String str2 = null;
System.out.println(str1.equals(str2));
System.out.println(str2.equals(str1));
- 첫 번째 코드에서
str1.equals(str2)는 false를 반환하지만, 두 번째 코드에서 str2.equals(str1)을 호출하면 NullPointerException이 발생한다. 이는 null 객체에서 메서드를 호출하려고 했기 때문이다.
2. Objects의 static 메소드 equals()를 사용한다.
String str1 = "string";
String str2 = null;
System.out.println(Objects.equals(str1, str2));
System.out.println(Objects.equals(str2, str1));
Objects.equals() 메서드는 null 체크를 자동으로 처리하므로, null 값이 포함된 비교에서도 안전하게 사용할 수 있다. 이 방법은 NullPointerException을 방지할 수 있다.