그래서 나는 몇 가지 정적 상수를 가진이 클래스에서 일하고 있습니다 :
public abstract class Foo {
...
public static final int BAR;
public static final int BAZ;
public static final int BAM;
...
}
그런 다음 상수를 기반으로 관련 문자열을 얻는 방법을 원합니다.
public static String lookup(int constant) {
switch (constant) {
case Foo.BAR: return "bar";
case Foo.BAZ: return "baz";
case Foo.BAM: return "bam";
default: return "unknown";
}
}
그러나 컴파일 할 때 constant expression required
3 개의 사례 레이블 각각에 오류가 발생합니다.
스위치를 컴파일하려면 컴파일러가 컴파일 타임에 식을 알아야한다는 것을 알고 있지만 왜 Foo.BA_
상수가 아닌가?
public static final int
s는 JDK 전체에 흩어져 있으므로 내가 함께했습니다.