Почему мой компилятор злиться (Constant выражение требуется), когда я говорю:массив символов используется в переключатель заявлении
final static char [] BASES = new char[]{'A', 'T', 'C', 'G'};
.
.
char c= in.charAt(i);
switch(c){
case BASES[0] : break;
case BASES[1] : packed =(char) (packed | 1); break;
.
.
.
}
, но если я говорю:
final static char a ='A';
final static char t ='T';
switch(c){
case a : break;
...
он счастлив? Мне кажется, что я здесь толстый. : -/
Если я не ошибаюсь, то 'символ []' является окончательным, но содержание не являются. То есть вы не можете сказать 'BASES = new char [] {...}', но вы все равно можете сказать 'BASES [0] = 'X';', поэтому 'BASES [0]' не является константой. – Blorgbeard
Какова цель, если существуют константы для случая оператора switch в массиве, а не в отдельных константах статического конечного символа? Вы не используете сам массив в примере. – Reboot
Я хотел бы использовать массив в нескольких других местах как массив. Это в основном делает код немного менее хрупким. Не массовое дело. Я просто чувствовал себя немного толстым, неспособным понять это ... – maccers