이 열거 형이 유효하지 않은 이유는 무엇입니까?Java 열거 형 유효하지 않은 오류
enum Type{
MPEG-2=2,PASSED_PIDS_ID=3,DVB=4,ATSC=5,NA=6,UNDETERMINED=7
}
이 열거 형이 유효하지 않은 이유는 무엇입니까?Java 열거 형 유효하지 않은 오류
enum Type{
MPEG-2=2,PASSED_PIDS_ID=3,DVB=4,ATSC=5,NA=6,UNDETERMINED=7
}
첫 번째 식별자 (변수 이름에 -
이 유효하지 않음)와 값 설정 방법에 몇 가지 구문 오류가 있습니다. enum에 =
을 사용하지 않지만 대신 생성자를 사용할 수 있습니다. 이것을 시도하십시오 :
enum Type {
MPEG2(2), PASSED_PIDS_ID(3), DVB(4), ATSC(5), NA(6), UNDETERMINED(7);
private final int value;
Type(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
=<number>
을 제거하십시오. 유효하지 않습니다. 또한 첫 번째 유형의 빼기 부호는 유효한 구문이 아닙니다.
Enum에는 Enum의 순서를 반환하는 ordinal()
이라는 메서드가 있습니다. 그러나이 메서드를 사용하는 것은 좋지 않습니다. 이후에 새 Enum을 추가하면 목록의 Enums가 모두됩니다. 서문이 하나 더 높다.
당신이 몇 가지 더 많은 데이터를 포함 할 경우, 당신은 당신이 예제로 사용할 수있는 생성자 수 있습니다 : 당신 그래서 예를 들면
public enum Fruit {
APPLE("Green"),
BANANA("Yellow");
private final String colourDescription;
Fruit(String colourDescription) {
this.colourDescription = colourDescription;
}
public String getColourDescription() {
return colourDescription;
}
}
를, 그것은 어떤 추가 정보가없는 것이 가장, 또는 수 위와 같이 생성자를 만들고 그런 식으로 숫자를 전달하십시오.
어떻게하면 1 대신 값 2로 시작합니까 ?? – Jony
@Codenotguru 'ordinal()'을 사용하여 사용할 수 없습니다 -이 경우 생성자를 사용하는 것이 좋습니다. –
개인 생성자? 자바 열거 형 모두가 기본 액세스를 원한다고 생각했습니다. (즉,'Fruit (...) {') 대신'Fruit (...) {'. –
식별자에 -
을 사용할 수 없습니다. 대신 MPEG_2
을 사용하십시오. 또한 Java에서 = [number] 구문이 올바르지 않다고 생각합니다.
"-"가 식별자에서 유효하지 않은 문자이기 때문에 유효하지 않습니다. MPEG-2 대신 MPEG_2를 사용하면 문제가 해결됩니다.
이것은 올바른 방법입니다. 열거 형에 대한 ordinal() 메서드는 EnumSet과 같은 Enum 관련 데이터 구조에서 사용하기위한 것입니다. –