Etc
java, equals 사용할 때 기본 확인사항
SuperDT
2024. 7. 26. 08:03
Java에서 equals 메서드를 사용할 때 변수의 앞뒤 순서는 매우 중요합니다
null이 될 가능성이 있는 객체를 뒤에 두는 것이 좋은데요
너무나 당연한 이야기입니다
null은 아무것도 없는 상태인데 메서드를 호출할 수 없기 때문입니다
1. null 객체가 앞에 오는 경우, NullPointerException 발생
public class TipEquals {
public static void main(String args[]){
String str1 = null;
String str2 = "미침";
if(str1.equals(str2)){
}
}
}
2. 문자열 객체가 앞에 오는 경우, 정상 비교 후 종료
public class TipEquals {
public static void main(String args[]){
String str1 = null;
String str2 = "미침";
if(str2.equals(str1)){
}
}
}
예상 못하게 앞에 값이 null이 온다면
아래와 같이 null체크나 예외처리를 해주어야 합니다
public class TipEquals {
public static void main(String args[]){
String str1 = null;
String str2 = "미침";
//str1 null 체크
if(str1 != null && str1.equals(str2)){
}
//예외를 예상하고 예외처리
try{
if(str1.equals(str2)){
}
}catch(Exception e){
System.out.println("str1 value is null");
}
}
}
하나의 변수가 무조건 null이 아니라면
간단하게 앞뒤 순서를 정하는 것으로 불필요한 코드를 줄일 수 있습니다
번외로 대소문자 구분없이 문자열을 비교하고 싶을 때는
대소문자 변환할 필요없이
equals가 아닌 equalsIgnoreCase를 사용하시면 됩니다