ae raff nao confuda a modificador static com valor constante… em java é diferente… eu tb passei por isso qdo começei a estudar, e achava que static tinha ver com valor que nao muda… mais em java é o final… que diz esse é o valor final de minha variavel. heheheheh… foi uma forma q usei na epoca… de identificar e aprender…
static - aqui quando vc declara ele tanto no metodo quanto na variavel vc esta diznedo que pode acessar o membro sem precisar da new. Ele pertence a class
final e aqui nao diz nada… referente a acesso… diz apenas que o valor da variavel nao pode mudar e no caso de metodos nao podem ser subscrito e no caso de uma classe nao pode ter filhos. Ex: String, Integer, Double - sao classes com o modificador final.
eu falei que a questao de Integer ser uma class final… ela nao é permitida no case, pq o autoboxing do java 5 funciona normalmente ali… entao se vc tem:
Integer n=10;
switch(n){
case n:
}
se isso funcionasse quebraria a regra dizendo que no case tem q ser constante/literal.
Ja que se vc fizer isso:
O n do case vai ser alterado… pelo recurso do autoboxing.
So que falei de forma resumida. E String tb nao é permitido no case:
[code:
case “camilo”:
[/code]
ja vi uma duvida assim:
StringBuilder sb = new StringBuilder("camilo");
switch(sb){
case "camilo" :
}
flw!! espero ter ajudado!