> 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
equals(). Ele é herdado de Object.
[]´s
Sávio
- Original Message -
From: "Savio Barros" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, February 28, 2003 4:01 PM
Subject: Re: [java-list] Duvida StringBuffer
> Olá,
> Faça isso:
>
>
> St
Olá,
Faça isso:
StringBuffer sb = new StringBuffer("abc");
StringBuffer s1 = new StringBuffer("abc");
if (sb.toString().equals(s1.toString())){
System.out.println("OK");
}
Transforme o StringBuffer em String.
[]´s
Sávio Barros
- Original Message -
From: "Marcio Adriano Ba
Márcio,
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/StringBuffe
Caro Marcio,
É complicado afirmar que um objeto é idêntico à outro. Isso é muito
relativo, ou seja, depende da classe a que estes objetos pertencem.
Por exemplo:
StringBuffer x = new StringBuffer("abc");
StringBuffer y = new StringBuffer("abc");
StringBuffer z;
z = x;
System.out.println(x.equa
O método equals é um objeto da classe Object que compara dois objetos e
inclusive os seus Hash codes. Cada vez que criamos um objeto, este objeto
recebe um número para identificação q é o seu hash code. Portanto cada
instância desta classe possui o seu próprio Hashcode.
Portanto use o método equals
Voce nao esta comparando os literais "abc". O comando equals compara os
objetos, ou melhor, os ponteiros de memoria de dois objetos, e que sem
duvida, sao diferentes.
- Original Message -
From: "Marcio Adriano Batista Leal" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, Febru
Apesar dos objetos terem o mesmo conteúdo ("abc"), eles apontam para
diferentes endereços na memória.
Quando o construtor da classe é chamado, uma de suas funções é essa :
alocar memória para um novo objeto. Foi o que aconteceu no seu exemplo,
vc chamou o construtor para os dois objetos. Para te
Olá Marcio
A classe StringBuffer herda o metodo equals da classe Object. . .. na classe
Object, o metodo equals compara apenas referencia: se sb e s1 estão
referenciando o mesmo objeto. . . mas como são objetos distintos, entaum não
rola. .. da uma olhada:
public boolean equals(Object obj) {
não apresenta a mensagem Ok por engano (seu).
aqui if (sb.equals(s1)) vc está comparando dois objetos
e realmente distintos.
para que a mensagem Ok seje mostrada altere o código para
if (sb.toString().equals(s1.toString()))
-Original Message-
From: Marcio Adriano Batista Leal [mailto:[
Ai MABL,
A API para StringBuffer não realiza overriden do metodo equals, sendo assim
este método é herdado de Object,
o método equals de Object retorna true se somente se sb==s1, para comprovar
isso veja os links do javadoc.
http://java.sun.com/j2se/1.4.1/docs/api/java/lang/StringBuffer.html
ht
11 matches
Mail list logo