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???
IF ("ocorrencia".equals(objeto))
Sobre a segunda pergunta todos são importante para eles somente são usados para diferentes situações.
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.
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")){
}