使用带子类的开关?

Gia*_*nis 1 java switch-statement

是否可以使用switch并具有不同的子类?我想使用switch而不是几个if语句.我有一个名为指令的抽象类和具有不同类型的子类.所以我希望每个案例都是一个不同的子类.喜欢 :

switch (instruction){
    case instruction1:
    case instruction2:
    case instruction3:
}
Run Code Online (Sandbox Code Playgroud)

等,所述指令1,2,3是同一类的子类.

Jon*_*eet 6

不,开关仅适用于数值和枚举.(在Java 7中,它也适用于字符串.)

听起来你可能应该在不同的子类中覆盖一个方法......或者可能使用枚举(它仍然可以覆盖methosds).

如果这没有帮助,请提供更多关于您正在尝试做什么的信息 - 最好是一个例子.

  • @latusaki:如果你已经在创建适当的实例,那听起来你应该有一个`execute()`方法或类似的东西,并在每个子类中覆盖它. (2认同)