Pessoal, Quando eu faço uma comparação de atributos do tipo String eu sempre tenho que utilizar "equals"? Comparar com "==" não funciona?
Pessoal, Quando eu faço uma comparação de atributos do tipo String eu sempre tenho que utilizar "equals"? Comparar com "==" não funciona?
Oi, Mario.
Em alguns casos, funciona. Mas nem sempre.
O recomendado é sempre usar o equals quando comparar referências. Variáveis do tipo String são referências. São objetos. Logo, use o equals.
O código abaixo ilustra bem isso:
String s1 = "Clark";
String s2 = "Clark";
System.out.println(s1 == s2); // true
System.out.println(s1.equals(s2)); // true
String s3 = new String("Clark");
System.out.println(s1 == s3); // false
System.out.println(s1.equals(s3)); // true
Praticamente não usamos o new String, mas isso não impede que outros códigos e o framework usem por algum motivo exclusivo. Logo, para garantir, sempre use equals.