> 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]
-------------------------------------------------------------------------