> Gostaria de Saber porque n�o apresenta a mensagem OK, pois estou
comparando 
> dois Objetos identicos.
> 
> public class testestring
> {
>    public static void main(String args[])
>    {
>      StringBuffer sb = new StringBuffer("abc");
>      StringBuffer s1 = new StringBuffer("abc");
>      if (sb.equals(s1))
>      {
>        System.out.println("OK");
>      }
>    }
> }

      Se voc� olhar no javadoc de Stringbuffer
(http://java.sun.com/j2se/1.4.1/docs/api/java/lang/StringBuffer.html),
vai ver que ele n�o faz override do m�todo equals(), ou seja, utiliza
o mesmo m�todo equals() de Object, que n�o serve para comparar
conte�do. Por outro lado, se voc� olhar o javadoc da classe String
(http://java.sun.com/j2se/1.4.1/docs/api/java/lang/String.html) voc�
ver� que ela implementa o m�todo equals(), e serve para isso. Ent�o a
compara��o correta pra voc� fazer no seu programa seria:

      if (sb.toString().equals(s1.toString()))

      Eu concordo, no entanto, que isto n�o � muito intuitivo e que
a classe StringBuffer deveria tamb�m implementar o m�todo equals().


      []s,

      Patola (Cl�udio Sampaio)


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a