EnumSyntax

EnumSyntax (열거 구문)

모든 "타입 안전 열거(type safe enumeration)" 객체의 공통 구현을 제공하는 추상 기본 클래스예요. EnumSyntax를 확장하는 열거 클래스는 그 열거 클래스의 싱글턴 인스턴스들인 열거 값(객체)들의 그룹을 제공해요.

출처: Java API Reference

본문

예를 들어 EnumSyntax를 확장하는 Bach 클래스는 각각 고유한 정수 값으로 생성된 JOHANN_SEBASTIAN, WILHELM_FRIEDEMANN 같은 상수들을 정의해요. 이런 방식으로 ==!= 연산자로 열거 값을 비교하는 코드를 작성할 수 있어요. equals() 메서드는 동일 객체인지(==)를 검사할 뿐이에요.

protected EnumSyntax(int value)
public int getValue()

toString()을 호출하면 열거 클래스가 제공하는 문자열 테이블에서 얻은 문자열로 열거 값을 변환할 수 있어요. 내부적으로 열거 값은 단지 정수이며, 같은 열거 클래스 안의 각 열거 값마다 다른 정수 값을 가져요. getValue()로 그 정수 값을 얻어요. 생성자가 protected이므로 가능한 열거 값은 열거 클래스에 선언된 싱글턴 객체뿐이에요.

protected String[] getStringTable()
protected EnumSyntax[] getEnumValueTable()
protected int getOffset()

getStringTable()getEnumValueTable()은 서브클래스가 문자열 및 열거 값 표를 제공할 때, getOffset()은 열거 값의 값이 getValue()의 정수와 어떻게 대응되는지 조정할 때 사용해요.

더 알아보기 (Learn more)

Java 공식 API