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???
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???
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.
[quote=rico.bezerra]E qual é a vantagem de uasr um IF assim pessoal?
IF (“ocorrencia”.equals(objeto))[/quote]
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.
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.
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")){
}