Os 2 objetos n�o s�o identicos, s�o 2 objetos StringBuffes diferentes. Voc� est� assumindo que a chamada do equals retorne true porque ambos buffers cont�m a mesma String. Por�m, tal compartamento n�o est� especificado na API (http://java.sun.com/j2se/1.4/docs/api/java/lang/StringBuffer.html). Mais precisamente, o m�todo equals da classe StringBuffer n�o est� documentado, portanto provavelmente tal classe n�o redefine esse m�todo).
J� a classe String (http://java.sun.com/j2se/1.4/docs/api/java/lang/StringBuffer.html) documenta o uso de equals:
Compares this string to the specified object. The result is |true| if and only if the argument is not |null| and is a |String| object that represents the same sequence of characters as this object.
Portanto, para o seu c�digo retornar true, o certo seria:
if (sb.toString().equals(s1.toString()))
Felipe
Marcio Adriano Batista Leal wrote:
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"); } }
}
------------------------------ 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] -------------------------------------------------------------------------
