我無法找出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