使用 class.getSimpleName() 的 Java switch 语句给出了 Constant express required 错误
2022-09-04 21:39:51
我试图使用class.getSimpleName()来表示开关,但它给了我一个错误:
需要恒定的快递
我看到过建议更改表达式变量声明的答案,使其具有编译时常量表达式的初始值设定项。但是,在这种情况下,这是不可能的。
有没有办法使用class.getSimpleName()进行切换,而不必对类名进行硬编码?
示例代码
public class ClassA {
public static final String TAG = ClassA.class.getSimpleName();
...
}
public class ClassB {
public static final String TAG = ClassB.class.getSimpleName();
...
}
public class SomeOtherClass {
switch (express) {
case ClassA.TAG: // Error here
...
break;
case ClassB.TAG: // and here
...
break;
default:
...
break;
}