대충 넘어가지 않는 습관을 위한 기록

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를 사용할 때 항상 문자열을 앞에 두고 사용하자.

 

 

 


https://ktae23.tistory.com/193