2014-12-23 41 views
0
public class SwitchTest { 

public static void main(String[] args) { 
    Integer i = new Integer(2) + new Integer(2); 

    switch(i){ 
     case 4: System.out.println("foo"); break; 
     default: System.out.println("default"); break; 
    } 
    } 
} 

整數i未標記爲最終。 (我只是java的初學者。)非終極變量如何成爲開關常量?

+0

'i'在這裏不是「開關常量」,它是接通的變量。它會打開當前值,就像'if'一樣。 – lmm

+0

開關參數不一定是最終的。在你的環境中有些東西是不正確的。 –

+1

你也可以編寫:'switch(new Random()。nextInt())'沒有任何問題。但是你不能寫'case new Random()。nextInt():',因爲每個'case'需要一個*編譯時常量*。 – Tom

回答

3

你很困惑case標籤與switch操作數。

switch對一個非常數值沒有任何錯誤;事實上,沒有這些,switch將大多無用。

+0

謝謝..現在我知道我是多麼愚蠢.. – Codistan