为什么“最终静态int”可以用作开关的大小写常数,而不能用作“最终静态<您的枚举>”
2022-09-02 09:50:04
为什么此 int 开关有效:
public class Foo {
private final static int ONE = 1;
private final static int TWO = 2;
public static void main(String[] args) {
int value = 1;
switch (value) {
case ONE: break;
case TWO: break;
}
}
}
虽然此枚举开关不是:
import java.lang.annotation.RetentionPolicy;
public class Foo {
private final static RetentionPolicy RT = RetentionPolicy.RUNTIME;
private final static RetentionPolicy SRC = RetentionPolicy.SOURCE;
public static void main(String[] args) {
RetentionPolicy value = RetentionPolicy.RUNTIME;
switch (value) {
case RT: break;
case SRC: break;
}
}
}
我知道在这种情况下,必须是什么常量,那么为什么我可以使用“最终静态int”作为常量,而不是“最终静态<你的枚举>”?