函数中具有相同名称的不同类型的变量

时间:2013-06-05 11:46:34

标签: java android-activity

我有这个代码,我想知道是否可以做这样的事情:

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

    default:
        break;
    }

非常感谢你提前。

3 个答案:

答案 0 :(得分: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作为类Object aux = null;我不推荐,因为看起来多态/扩展是正确的方法。

答案 1 :(得分:0)

 Type1Activity aux = null;


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

    default:
        break;
    }

答案 2 :(得分:0)

不,你不能,在switch语句中声明的变量的范围是整个switch语句。所以你的代码应该生成一个编译错误(“已经定义了变量aux”,或类似的东西)。

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