我无法找出Java中交换机的内部工作原理 我被告知,对于所有原语,该值都被提升为整数。在Java中切换非Ints
然而,在下面的例子中,我测试一个字节变量,任何情况下大于127不会编译:
byte k = 5;
switch(k){
case 128: //fails to compile, possible loss of precision
我意识到这是一个错误,没有任何问题,这一点。我的问题是:
JVM如何跟踪它在一个字节上的切换,如果它在测试每个个案之前将值“k”提升为一个整数?
我不关心编译错误,这只是一个例子。开关变量是否被提升为整数? – Adam 2011-12-30 21:17:07
它被提升,请参阅我的答案或JVM规范第7.10节 – 2011-12-30 21:34:41