comparaçao aborrecida

seguinte…
eu tenho o código[estou na escola agora]:

[code]<%
String nome = (String) request.getParameter(“tNome”);
String nulo = “null”;

if (nome == nulo ){
throw new exception …
}
%>[/code]

a questão é, por default , se não tem o parametro tNome… ele é null…
logo o teste deveria ser verdadeiro…

um outro problema… ainda com o request.getParameter() foi quando resolvi fazer uma calculadora…

nos testes condiçoes tem…

if (op == "+"){ ... }

… a questão é que, sobre circunstância alguma ele executa isso…
que tipo de erro é esse?
será que é questão de tipo de dados?
será que tem algum problema comparar strings?

“null” (String) é diferente de null (palavra reservada)

Portanto:

&lt;%
 String nome = (String) request.getParameter("tNome");
 
 if (nome == null ){
    throw new exception .....
    }
 %&gt;

Strings devem ser testados com o método equals();

if (op.equals("+")){
 ...
 }

[quote=proteus_adi]seguinte…
eu tenho o código[estou na escola agora]:

[code]<%
String nome = (String) request.getParameter(“tNome”);
String nulo = “null”;

if (nome == nulo ){
throw new exception …
}
%>[/code]
[color=red]
a questão é, por default , se não tem o parametro tNome… ele é null…
logo o teste deveria ser verdadeiro…
[/color]

um outro problema… ainda com o request.getParameter() foi quando resolvi fazer uma calculadora…

nos testes condiçoes tem…

if (op == "+"){ ... }

… a questão é que, sobre circunstância alguma ele executa isso…
que tipo de erro é esse?
será que é questão de tipo de dados?
será que tem algum problema comparar strings?

[/quote]

Errado. Vc esta tentando comparar uma String com uma outra string em que o conteúdo é o valor “null”, o que é bem diferente de comparar com uma referência nula.

Onde se vc fizer

[code]<%
String nome = (String) request.getParameter(“tNome”);

if (nome == null ){
throw new exception …
}
%>[/code]

ai sim dará certo

oh!!

valeuz…

mas…
ainda sobre a questão do “+”…
esta é a unica maneira correta?
onde eu acho os methodos do String ?

Java DOC da classe String: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html
(Leia sempre os Javadocs)

E para comprar String, use sempre o método equals(). Ex:

String s = "Daniel"; String t = "Destro"; if( s.equals( t ) ) { //igual }

Complementando a resposta do daniel, use equals() para comparar Strings SE o seu objeto nao for nulo. Ou seja, se voce nao tiver uma instancia criada, a expressao ira resultaar em uma quebra do programa:

String s = null;

/// Esse codigo vai dar quebrar o programa na hora de 
// rodar, pois "s" eh null. 
if (s.equals("abc")) { ... }

// Esse codigo certifica-se primeiro que a variavel 
// nao eh null antes de charmar o equals()
if (s != null && s.equals("abc")) { ... }

// Se voce quer comparar diretamente com algum valor
// especifico, coloque a comparacao em primeiro lugar. 
// Dessa forma, voce nao precisa da comparacao com null
if ("abc".equals(s)) { ... }

Rafael

StringUtils do Commons-Lang eh bom pra isso. :smiley:

if (StringUtils.equals(bla, "bla")) ...

Marcio Kuchma