대충 넘어가지 않는 습관을 위한 기록
equals 메서드에 대해 (NPE)
uhyvn
2023. 11. 16. 23:19
Null pointer Exception은 참조하는 객체가 null일 경우 발생한다.
쉽게 말해 특정 객체 뒤에 점( ' . ' )을 찍는 것은 해당 객체를 참조한다는 뜻이다.
euals 메서드는 점을 찍어 앞쪽 객체를 참조하고 파라미터와 비교를 한다.
때문에 문자열을 비교하는 경우 보통은 많은 경우 객체를 참조하고 파라미터로 비교하는 문자열을 넘긴다.
public class equalsTest {
public static void main(String[] args) {
String allowed = null;
if(allowed.equals("allowed")){
System.out.println("일치");
}else {
System.out.println("NPE!!!");
}
}
}
이런 경우에 NullPointerException이 발생한다.
public class equalsTest {
public static void main(String[] args) {
String allowed = null;
if("allowed".equals(allowed)){
System.out.println("일치");
}
}
}
그러나 위의 코드처럼 참조하는 객체가 null일 수 없도록 해주게 되면 전달 된 값이 null이더라도 null pointer exception이 발생하지 않는다.
equals를 사용할 때 항상 문자열을 앞에 두고 사용하자.