鉴于以下代码, &#39; <#em> (类型为 char )会自动提升为int类型在 switch-case 声明?
var refresh = setInterval(tijd, 1000);
function tijd(){
var d1 = new Date(),
minutes = d1.getMinutes().toString().length == 1 ? '0'+d1.getMinutes() : d1.getMinutes(),
hours = d1.getHours().toString().length == 1 ? '0'+d1.getHours() : d1.getHours();
return hours+ ':' +minutes;
document.getElementById("tijd1").innerHTML = d1;
}
}
我无法找到Java SE7是否会提到这一点......
提前感谢您的澄清。
此致 丹尼尔
答案 0 :(得分:7)
以下是语言规范提到的内容。见this section on switch
statements:
给定
switch
语句,以下所有内容必须为true或发生编译时错误:
与
switch
语句关联的每个案例常量必须与switch
语句的表达式(第5.2节)的类型兼容。...
表示缩小转化将适用于char
值'a'
。其97
的数值可表示为byte
。但是值256
不适合编译器会抛出错误。
答案 1 :(得分:0)
是的,switch语句将生成带有常量的tableswitch或lookupswitch原语,这些常量通常根据此提升为int