我在 Java 中有一个 switch 语句,在一个 Enum 上让我们调用 IMyInterface.MyEnum
我的每个案例语句都有以下形式:IMyInterface.MyEnum.MyValue,(尽管如果我导入,我可以删除 IMyInterface)。
但是,编译器 (Java 6) 会引发错误:“必须将合格的案例标签 IMyInterface.MyEnum.MyValue 替换为不合格的枚举常量 MyValue”。
我显然可以这样做,但是对于我的一生,我不明白这个错误的目的是什么。显然,如果编译器能够处理实际值,它应该能够像处理常量一样处理全限定名。事实上,我会假设编译器会将常量转换为完全限定名。
那么,Java 大师们,这背后的基本原理是什么?谢谢!