enum 객체 비교는 == 을 권장
이유 1. '==' 는 NullPointerException 을 발생시키지 않음
- '==' 는 객체끼리 비교할 경우 메소드 호출 없이 객체의 참조만 비교하기 때문에 비교하는 대상이 null 이더라도 NPE 가 발생하지 않는다. if(obj == null) 이라면 NPE 가 발생하지 않고 false 가 반환된다. equals() 는 비교대상이 null 이면 NPE 를 발생시킴.
이유 2. '==' 는 컴파일 단계에서 타입 호환성을 검사한다.
- '==' 로 다른 타입 객체를 비교하려고하면 컴파일 단계에서 에러를 발생시킨다. equals() 사용할 경우 컴파일 단계에서 검사하지 않고 그냥 false 를 반환한다.
이유 3. Enum 은 싱글톤 인스턴스기 때문에 '==' 사용해서 객체의 참조를 비교해도 다른 인스턴스를 가르키고 있을 가능성이 없음.
'학습 기록 > 자바' 카테고리의 다른 글
Java 람다, 함수형 인터페이스, 동작 파라미터화 (1) | 2025.03.12 |
---|---|
UnsupportedOperationException / List.copyOf / List.of 에 대하여 (1) | 2024.01.22 |
자바는 call by value 만 존재한다 (0) | 2023.07.02 |