Estou usando o if em uma classe, mas estou tendo dificuldades.
O código é assim:
if((nome==“char”) || (nome==“String”)){…}
Uma das duas condições deve ser verdadeira. Eu usei o operador || (que é o que utilizo em outras linguagens), mas quando mando compilar, dá erro.
O quê devo utilizar no lugar do || ?
Provavelmente o item “nome” deve ser do tipo String.
Quando vc tenta comparar nome==“String”, por exemplo, vc está tentando comparar um objeto chamado nome do tipo String com um objeto também do tipo String.
O ocorre que o Hash de um objeto não é igual ao outro (porque não são o mesmo objeto) e então ao fazer obj1==obj2 dá false.
Hmmm… entendeu?
mesmo qdo vc fizer assim “uma string” ela é um objeto do tipo String internamente.
então pra comparala com outra vc faria “uma string”.equals(“outra string”) …
Uma das duas condições deve ser verdadeira. Eu usei o operador || (que é o que utilizo em outras linguagens), mas quando mando compilar, dá erro.
O quê devo utilizar no lugar do || ?
Alguém pode me ajudar?[/quote]
Para ajudar, fica mais fácil mostrar a mensagem de erro do compilador e talvez um trecho maior, um pouco mais de código (o erro pode ser da linha anterior, esquecimento da declaração da variável nome, etc.)
Com certeza isso não eh motivo para não compilar!
marianefg,vc errou em alguma coisa…derrepente esqueceu de inicializar uma variável ou coisa do gênero… Só um detalhe nesse seu Teste:
digamos q vc escreva
String a=“JAVA”;
String b=“JAVA”;
o teste if(a==b) retornará true pq o Pool de Strings da JVM inclui as Strings literais nele de tal forma q se ela aparecer d novo,ela fará referência para o mesmo objeto! Dêem uma olhada no tutorial q fala da classe java.lang.String aqui do GUJ!
Logo,só utilize == para tipos primitivos,não para objetos!