yeg*_*osc 7 java switch-statement type-promotion
给定以下代码,在switch-case语句中是'a'(即char类型)自动提升为int类型?
void testSwitch(byte x) {
switch(x) {
case 'a': // 1
case 256: // 2
default: // 3
case 1: // 4
}
Run Code Online (Sandbox Code Playgroud)
}
我无法找到Java SE7是否提到了这一点......
在此先感谢您的澄清.
问候,丹尼尔
这是语言规范提到的内容.请参阅本节中的switch陈述:
给定一个
switch语句,所有以下内容必须为true或发生编译时错误:
与
switch语句关联的每个case常量必须与switch语句的Expression(第5.2节)的类型兼容....
这意味着缩小转换将适用于该char值'a'.它的数值97可表示为a byte.256但是该值不适合,因此编译器将抛出错误.