Итак, я работаю над этим классом, который имеет несколько статических констант:
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
для каждой из трех меток case.
Я понимаю, что компилятору нужно, чтобы во время компиляции было известно, что компилятор должен быть скомпилирован, но почему нет Foo.BA_
constant?