2013-06-05 178 views
-2

我有這樣的代碼,我想知道是否有可能做這樣的事情:不同類型的具有相同名稱的變量輸入功能

switch (typeActivity) { 
    case 0: 
     Type1Activity aux=activity1; 
     break; 
    case 1: 
     Type2Activity aux=activity2; 
     break; 
    case 2: 
     Type3Activity aux=activity3; 
     break; 

    default: 
     break; 
    } 

十分感謝你提前。

+0

案例2應該是'Type3Activity'而不是'Tipe3Activity'嗎? – luk2302

回答

1

從類型相似的名稱假設它們擴展名爲像TypeActivity基類,或者至少應該做這種方式;)
那麼你可以使用:

TypeActivity aux = null; 

switch (typeActivity) { 
    case 0: 
    aux = activity1;//Type1Activity 
    break; 
    case 1: 
    aux = activity2;//Type2Activity 
    break; 
    case 2: 
    aux = activity3;//Type3Activity 
    break; 
    default: 
    break; 
} 

只有其他方式將使用對象作爲類Object aux = null;,我不會推薦,因爲它似乎多態/擴展是正確的方式去這裏。

0
Type1Activity aux = null; 


switch (typeActivity) { 
    case 0: 
     aux=activity1; 
     break; 
    case 1: 
     aux=activity2; 
     break; 
    case 2: 
     aux=activity3; 
     break; 

    default: 
     break; 
    } 
0

不可以,在switch語句中聲明的變量範圍是整個switch語句。所以你的代碼應該會產生一個編譯錯誤(「變量aux已經定義好了」,或類似的東西)。

此外,你從不使用這些變量,所以整個代碼是毫無意義的。如果這是對實際用例的簡化,則應該更詳細地解釋您要實現的目標。

相關問題