Equals

4 respostas
R

E qual é a vantagem de uasr um IF assim pessoal?

IF (“ocorrencia”.equals(objeto))

Se possível uma outra dúvida, quais os principais designs patterns e suas utilizações???

4 Respostas

otaviojava
Primeira pergunta,
IF ("ocorrencia".equals(objeto))
Isso que você fez somente chamar um método de uma String. Posso estar enganado, mas seria semelhante a: [code] String a="ocorrencia"; IF (a.equals(objeto)) [quote] Acredito que você simplismente usou um método de uma string sem atribui-la em uma variável do tipo String.

Sobre a segunda pergunta todos são importante para eles somente são usados para diferentes situações.

D

rico.bezerra:
E qual é a vantagem de uasr um IF assim pessoal?

IF (“ocorrencia”.equals(objeto))

Fazer o equals com a String literal na esquerda garante que a gente não vai receber um NullPointerException. Imagine o seguinte código:

public void compara(String valor) { if(valor.equals("minhaString") { //faz algo } }

E a gente chamasse:

compara(null)

ocorreria NullPointerException. Desse modo que você apresentou, ele só retornaria false na comparação e continuaria com o código normalmente.

Os mais conhecidos são os padrões GoF. Recomendo você começar a estudar padrões de projeto pelo livro “Use a Cabeça Padrões de Projeto” e depois de ter adquirido familiaridade, podes partir para esse livro.

ViniGodoy

A “vantagem” como já falaram, é evitar o null pointer exception, caso o objeto em questão seja nulo.
Agora, em 90% das vezes, receber nulo num método pode ser um erro. Nesse caso, esse código o mascaria. Por isso, quando vc não quiser nulo, valide seus parâmetros, ou deixe o NullPointer estourar e corrija o problema.

F

equals geralmente é usado para comparar uma string.
exemplo:
um valor numérico você compara assim :

if(numero == 2){

// faça isso....

}

// se você usar o sinal de == para comparar String não funciona... então vc faz assim...

String nome = "Felipe";

if(nome.equals("Felipe")){

//Faça isso.

}

/*
outra coisa... para o computador, para o java letra maiúscula é diferente de minúscula... pra gente é igual mas para o computador as duas são diferente... 
o nome disso é Case Sensitive... então como vc não sabe se a variável vai receber letra maiúscula ou minúscula vc coloca um ignoreCase no equals assim...
*/

if(nome.equalsIgnoreCase("Felipe")){


}
Criado 8 de janeiro de 2011
Ultima resposta 9 de jan. de 2011
Respostas 4
Participantes 5