Duvida com Switch

Pessoal o Livro da Kathy diz que uma variavel para ser usada no case: tem que ser uma constante em tempo de compilação …
alguem poderia me explicar por que isso da erro ??

final int a = 10;
		final int b;
		b = 12;
		Integer key = 10;
		switch (key) {
		case b:
			
			break;

		default:
			break;
		}

Terceira vez que essa pergunta é feita no fórum…
http://www.guj.com.br/posts/list/74896.java#393588

Inclusive você participou das discussões da dúvida original!!! :-o

tenta faser assim

[code] final int a = 10;
final int b;
b = 12;
Integer key = 10;
switch (key) {
case 12:

          break;  
 
      default:  
          break;  
      }  [/code]

Bom

Eu acho que o erro aqui é outro…

Acho que o erro aqui tem a ver com o final. Se você colocar case a: funciona.

Se você colocar final int b = 12; // na mesma linha declaração e inicialização

o seu código funciona.

Acho que o erro acontece porque variáveis locais final tem que ser inicialidas na declaração. (me corrijam se eu estiver falando bobagem)

[]s
Gunnar

Olá eu discuti isto estes dias com o pardal_nb,
e respondi ele aqui: http://guj.com.br/posts/list/75821.java#399075

Att

[quote=danielbussade]Olá eu discuti isto estes dias com o pardal_nb,
e respondi ele aqui: http://guj.com.br/posts/list/75821.java#399075

Att[/quote]

Foi o que eu tinha imaginado mesmo…

[]s
Gunnar

[quote=gk-bgh][quote=danielbussade]Olá eu discuti isto estes dias com o pardal_nb,
e respondi ele aqui: http://guj.com.br/posts/list/75821.java#399075

Att[/quote]

Foi o que eu tinha imaginado mesmo…

[]s
Gunnar[/quote]

Agora entendido :smiley: