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를 사용할 때 항상 문자열을 앞에 두고 사용하자.
'대충 넘어가지 않는 습관을 위한 기록' 카테고리의 다른 글
[SQL] DDL,DML,DCL,TCL에 대해 (1) | 2023.12.04 |
---|---|
LocalDate, LocalTime, 그리고 LocalDateTime (2) | 2023.12.04 |
JPA와 Spring data JPA 차이 (0) | 2023.11.17 |
@Builder를 쓰는 이유 (1) | 2023.11.16 |
@NoArgsConstructor(access = AccessLevel.PROTECTED)를 쓰는 이유 (0) | 2023.11.16 |