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 |