Switch com String faz?

9 respostas
henry.everton

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

Olha o q eu fiz:
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;
	}

Só que como o java faria com String?

9 Respostas

nbluis

Switch apenas com int e short no Java.

henry.everton

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

eu uso o if mesmo… valeu

kaique

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.

victorcosta

vc pode usar :

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

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

cassio

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.

malves_info

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

T

victorcosta:
vc pode usar :

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

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

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

S

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

LPJava

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:

Criado 10 de outubro de 2007
Ultima resposta 11 de out. de 2007
Respostas 9
Participantes 9