我想使用 switch 语句(而不是 else if)测试三种情况。现在,这些情况都测试变量是否是类的实例。我想做这样的事情:
switch(var){
case A: doA();
case B: doB();
case C: doC();
}
public enum{
A, B, C
}
我希望 A 代表 var instanceof A
的情况。有没有办法将此信息分配给枚举中的值?
最佳答案
声明枚举如下:
private enum ClassType {
A,
B,
C,
D,
Unknown;
}
现在,编写一个返回类型的方法:
private ClassType getClassType(Object object){
ClassType type = null;
try{
type = ClassType.valueOf(object.getClass().getSimpleName());
}catch(IllegalArgumentException e){
type = ClassType.Unknown;
}
return type;
}
现在,将其与 switch 一起使用:
switch(getClassType(object)){
case ClassType.A:
//do something
break;
}
对于新类,您需要在 switch
中添加值和大小写。
关于java - 如何在Java中组合enum、switch和instanceof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41881091/