2013-06-05 123 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已经定义好了”,或类似的东西)。

此外,你从不使用这些变量,所以整个代码是毫无意义的。如果这是对实际用例的简化,则应该更详细地解释您要实现的目标。

相关问题