如何使switch case在Java中接受多种数据类型?

Sta*_*arx 7 java language-features switch-statement

使用Java的switch case时,它只排除char和int,但我想提供字符串大小写.如何使这成为可能?

aio*_*obe 6

你还不能在switch-case中使用字符串.它正在Java 7中.

它接受包括当前类型char,byte,short,int,Character,Byte,Short,Integer,或枚举类型.

从Java语言规范:

Expression的类型必须是char,byte,short,int,Character,Byte,Short,Integer或枚举类型(第8.9节),否则会发生编译时错误.

...

必须满足以下所有条件,否则将导致编译时错误:

  • 与switch语句关联的每个case常量表达式必须可分配(第5.2节)到switch表达式的类型.
  • 没有开关标签为空.
  • 与switch语句关联的两个case常量表达式中没有两个可能具有相同的值.
  • 最多一个默认标签可以与同一个switch语句相关联.