더북(TheBook)

ordinal 메서드는 enum 선언에서 인스턴스의 위치(0부터 시작)를 돌려준다. 예를 들어 Size.MEDIUM.ordinal()1을 반환한다. 물론 이 방법을 사용할 때는 주의가 필요하다. 새 열거 상수를 중간에 삽입하면 위치가 이동해 값이 바뀌기 때문이다.

모든 E 열거 타입은 자동으로 Comparable<E>를 구현하므로 해당 열거 타입에 나열된 객체만을 상대로 비교할 수 있다. 순서 값(ordinal value)으로 비교된다.

Note ≣

기술적으로 E 열거 타입은 Enum<E>를 확장하며, Enum<E>에서 compareTo 메서드와 이 절에서 설명하는 다른 메서드들을 상속한다. 표 4-2에 Enum 클래스의 메서드를 정리했다.


▼ 표 4-2 java.lang.Enum<E> 클래스의 메서드

메서드

설명

String toString()

String name()

enum 선언에 지정한 대로 인스턴스의 이름을 반환한다. name 메서드는 final이다.

int ordinal()

enum 선언에서 인스턴스의 위치를 반환한다.

int compareTo(Enum<E> other)

이 인스턴스와 other를 순서 값으로 비교한다.

static T valueOf(Class<T> type, String name)

이름에 해당하는 인스턴스를 반환한다. 이 메서드 대신 열거 타입의 valueOf 또는 values 메서드를 사용한다.

Class<E> getDeclaringClass()

인스턴스를 정의한 클래스를 얻는다(인스턴스에 바디가 있으면 getClass()와 다른 결과를 반환한다).

int hashCode()

protected void finalize()

이 메서드들은 각각 대응하는 Object 메서드를 호출하며, final이다.

protected Object clone()

CloneNotSupportedException을 던진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.