为什么这会发生在交换机(Java)上?

Dil*_* PR 2 java string switch-statement

很明显,switch语句可以在Java中使用字符串值,如下所示:

String s="diljit"
switch(s){
 ..
 ....}
Run Code Online (Sandbox Code Playgroud)

将始终编译.. sString类型的对象....但另一方面,switch语句不能接受其他类的对象?为什么会发生这种情况?如何通过合适的答案验证这个问题..

可以切换语句是否接受对象

Roh*_*ain 8

可以切换语句是否接受对象?

不,你不能在switch语句中使用任何任意对象.这是在语言本身中指定的.甚至String只允许从Java 7开始.来自JLS§14.11:

类型中表达的必须是char,byte,short,int,Character,Byte,Short,Integer,String,或的enum类型(§8.9),或发生编译时间错误.