equals()의 사용
public class Equals {
	public static void main(String[] args) {
    	String a = null;
        String b = "aa";
        
        System.out.println(a.equals(b)); // NullPointException 발생!
        
    }
}우리는 흔하게 문자열을 비교할 때 equals()를 사용합니다. 그러나 위의 예시처럼 a가 null일경우, null 에러가 발생합니다. 따라서 equals()를 사용할때는, 다음과 같이 null 예외처리를 해줘야 합니다
public class Equals {
	public static void main(String[] args) {
    	String a = null;
        String b = "aa";
        
        if(aa != null && aa.equals(bb)) {
        	System.out.println("a equal to b");
        }
    }
}이렇게 처리하지 않고 null 에러를 일으키지 않으며 비교할 수 있는 방법이 있을까요? Object.equals()를 사용하면 null을 포함하여 비교할 수 있습니다.
Objects.equals()의 사용
public class Equals {
	public static void main(String[] args) {
    	String a = null;
        String b = null;
        String c = "apple";
        String d = "apple";
        
        System.out.println(Objects.equals(a, b)); // true
        System.out.println(Objects.equals(c, d)); // true
        System.out.println(Objects.equals(a, c)); // false
    }
}만약 a가 null인것을 거르고 싶다면, 다음과 같이 할 수 있습니다
public class Equals {
	public static void main(String[] args) {
    	String a = null;
        String b = "aa";
        
        if(aa != null && Objects.equals(a, b)) {
        	System.out.println("a equal to b(a is not null)");
        }
    }
}
'Language > Java' 카테고리의 다른 글
| jpa에서 top, limit, orderby 쓰기 (0) | 2021.06.07 | 
|---|---|
| Is Java “pass-by-reference” or “pass-by-value”? | Stack Overflow 정리 (0) | 2020.12.13 | 
| How do I compare strings in Java? | Stack Overflow 정리 (0) | 2020.12.11 | 
| String.intern() 이란? 언제 사용하는가? (2) | 2020.12.10 | 
| What is a NullPointerException, and how do I fix it? | Stack Overflow 정리 (0) | 2020.12.08 |