[code]
public class TesteEquals {
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer s1 = new StringBuffer("hello");
StringBuffer s2 = new StringBuffer("hello");
Float f1 = 9.0F;
Double f2 = 9.0;
System.out.println(f1.equals(f2));
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}[/code]
nao entendi o porq o 1 e o 2 teste da false…
o primeiro da false porque quando comparamos objetos de classes diferentes pelo equals ira retornar false. o segundo tambem da false porque s1 e s2 nao possuem a mesma referencia.
o terceiro ira retornar false porque a classe StringBuffer nao sobrescreve o metodo equals, entao ele ira funcionar que nem o ==.
Creio que seja isso.
Um wrapper só retorna true se for comparado a outro do mesmo tipo ou ao seu primitivo do mesmo tipo…
1o = false
O segundo é false, pq sao 2 objetos distintos…
e o 3o é false tb pq a classe StringBuffer não sobreescreve o método equals() então é simplesmente uma comparação == (igual ao anterior)
abraço…