Switch com String faz?

Pessoal estou com uma dúvida bem básica aqui, estou com um problema com switch case aqui.

Olha o q eu fiz:

[code] String time = (String)(session.getAttribute(“time”));

switch(time){
	case ("Gambares"): session.setAttribute("gambares",1);break;
	case ("Porcos"): session.setAttribute("porcos",1);break;
	case ("Sereias"): session.setAttribute("sereias",1);break;
	case ("Bambis"): session.setAttribute("bambis",1);break;
}[/code]

Só que como o java faria com String?

Switch apenas com int e short no Java.

é achei a documentação aqui que fala que nao funciona… tudo bem tranquilo…

eu uso o if mesmo… valeu

Só complementando a informação passada…
O switch no Java, além de funcionar com os tipos informados acima, também funcionam com char e, a partir do Java 1.5, funciona também com Enums…
Dá uma conferida na API que çá tem dizendo…

[]'s.

vc pode usar :

switch (time.hashCode()) {
case “Gambares”.hashCode(): …

nada elegante mas eh o jeito… ou então um monte de ifs

Se esse valores que você está usando não mudarem constantemente, use enum. Você pode facilmente usar switch com enum a partir do Java 1.5, ou melhor ainda, pode usar polimorfismo em cima de cada elemento da enum para eliminar esse switch feio.

Essa ideia que eu ia dar…
Utilizar Enum…
Vou colocar mais tarde um exemplo utilizando Enum…
Abraços

[quote=victorcosta]vc pode usar :

switch (time.hashCode()) {
case “Gambares”.hashCode(): …

nada elegante mas eh o jeito… ou então um monte de ifs[/quote]

Atenção - duas strings diferentes podem ter o mesmo hashcode.

Não serve isso?String time = (String)(session.getAttribute("time")); session.setAttribute(time.toLowerCase(),1);
Ou foi só um exemplo?

so é valido char,byte,short, int e enum(java 1.5).

obs.: tudo aquilo que é um int pode ser testado… lembre um char é um int, short pode ser um int… :smiley: