java enum 비교. == vs equals()

murkgom·2022년 2월 25일
0

1. 공통점

	TestEnum aInstance = TestEnum.TYPE_A;
    
    System.out.println(aInstance == TestEnum.TYPE_A);			//print : true
    System.out.println(aInstance.equals(TestEnum.TYPE_A));		//print : true

둘 다 정상적으로 비교, 결과를 도출한다.

2. 차이점

1. NullSafe

	TestEnum aInstance = null;
    
    System.out.println(aInstance == TestEnum.TYPE_A);			//print : false
    System.out.println(aInstance.equals(TestEnum.TYPE_A));		//throw NullPointException

equals는 호출하는 instance가 null일 경우, Exception 발생
반면, 등호연산자(==)NullSafe

2. Type Check

    System.out.println(TestEnum.TYPE_A == TestEnum.TYPE_B);			//Compile Error
    System.out.println(TestEnum.TYPE_A.equals(TestEnum.TYPE_B));	//print : false

등호연산자(==)는 Compile 단계에서 Type Check를 통해 Error가 발생할 수 있음
(근데 이런 코드를 작성할까..?)

0개의 댓글