-2

我有这段代码,我想知道是否可以这样做:

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

    default:
        break;
    }

非常感谢你提前。

4

3 回答 3

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;我不推荐的类,因为看起来多态/扩展是正确的方法。

于 2013-06-05T11:54:51.417 回答
0
 Type1Activity aux = null;


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

    default:
        break;
    }
于 2013-06-05T11:50:20.817 回答
0

不,你不能,在 switch 语句中声明的变量的范围是整个 switch 语句。所以你的代码应该产生一个编译错误(“variable aux is already defined”,或者类似的东西)。

Besides, you never use those variables so the whole code is pointless. If this is a simplification of an actual use case, you should explain in more details what you are trying to achieve.

于 2013-06-05T11:55:39.197 回答