2013-06-05 3 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

Предполагая, что от подобных имен ваших типов они удлинить BaseClass под названием что-то вроде 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;, который я бы не рекомендовал, так как кажется, что полиморфизм/продолжения - правильный путь.

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 уже определена» или что-то в этом роде).

Кроме того, вы никогда не используете эти переменные, поэтому весь код бессмыслен. Если это упрощение фактического варианта использования, вы должны более подробно объяснить, чего вы пытаетесь достичь.

Смежные вопросы