显然, long 和 String 类型都不符合 switch 的语法规定,并且不能被隐式转换成 int 类型,所以,它们...
能在Sw 从Java 7 开始,我们可以在 switch case 中使用字符串,但这仅仅是一个语法糖。内部实现在 switch 中使用字符串的 hash code。 在Java 7中,switch开始支持String类型。 从本质来讲,switch对字符串的支持,其实是int类型值得匹配。 其实现原理为:通过对case后面的String对象调用hashCode()方法,得到一个int类...
从Java 7 开始,我们可以在 switch case 中使用字符串,但这仅仅是一个语法糖。内部实现在 switch 中使用字符串的 hash code。 从Java 7 开始,Java 语言支持在switch语句中直接使用String类型的变量。之前的版本只允许在switch语句中使用整型、枚举和一些特定的类(比如Character、Byte、Short和Integer)。 使用字符串作...
switch(表达式),表达式的内容为整数表达式或枚举常量,整数表达式即为int或integer型,因为byte、short、char都可以转换成整型,而string、long不可以,所以switch能作用在byte上而不能作用在long和string上
byte 一般是unsigned char定义而来,当然如果你非得把它定义成别的那不在此讨论范围。一般 char、short...
2.在.switch表达式中,括号表达式只能是一个整型表达式或枚举常量整数表达式可以是int基本数据类型会Integer包装类型。由于byte、short、char都可以隐式转换为int,所以这些基本数据类型及其包装类型都可以。 3.long和String无法隐式转换为int类型所以不能在switch中使用。浏览...
byte a = 0; // 可以作用在switch char b = ' '; // 可以作用在switch short c = 0; // 可以作用在switch int d = 0; // 可以作用在switch String e = ""; // 可以作用在switch long f = 0L; // 不可以作用在switch float g = 0.0f; // 不可以作用在switch double h = 0.0; /...
如果一定要用 long,可以用 if-else 替代 switch,或者将 long 转为 int(但需注意可能的溢出问题)。switch 能否作用在 String 上?答案是:可以(JDK 1.7 及之后版本)!在 JDK 1.7 中,switch 增加了对 String 类型的支持。这是通过将 String 的值转化为其对应的 hashCode 来实现的,但在底层会有额外...
*//***报错:*Cannotswitchon a valueoftype boolean.*Only convertible int values orenumconstants are permitted*不能切换Boolean类型,只有可转换的int值或者枚举常量才允许*//*}*/}} 笔者使用的是JDK1.6,switch中使用string时出现如下结果:解决方法就是更换1.7以上版本...