Urgente - Comparação de Objects

10 respostas
H

É o seguinte,

Tenho um vetor de Object.

Object[] v = new Object[3];

fazendo isso:
v[contador]= JtoggleButton.getSelectedIcon();

E vou pegando os nomes destas imagens e jogando pra este v.

Na hora que eu preciso comparálos, dá erro: Eu faço por exemplo:

if(v[contador]==v[contador-1]) Ele dá erro na comparação. Os dois são iguais mas não entra na minha cláusula. E se passo os valores deste v[] para strings e comparo eles tb não funcionam…

Alguém sabe o motivo?

10 Respostas

G

“Hericksnake”:
É o seguinte,

Tenho um vetor de Object.

Object[] v = new Object[3];

fazendo isso:
v[contador]= JtoggleButton.getSelectedIcon();

E vou pegando os nomes destas imagens e jogando pra este v.

Na hora que eu preciso comparálos, dá erro: Eu faço por exemplo:

if(v[contador]==v[contador-1]) Ele dá erro na comparação. Os dois são iguais mas não entra na minha cláusula. E se passo os valores deste v[] para strings e comparo eles tb não funcionam…

Alguém sabe o motivo?

use equals() para comparar objects…

:wink:

D

Cara, para fazer a comparação de Objetos se usa o equals e para dados primitivos(int, float, double, etc…) se usa o operador == lembrando que o tipo String não é considerado dado primitivo, é tratado como um object por isso se usa o equals!

Blz?!

Falou!!

E

eae blz?

cara quando vc tiver trabalhando com objetos do jeito que vc está fazendo
eles nunca serão iguais a não ser que na posição do seu vetor vc armazene apenas as referencia para objetos instanciados esse tipo é meio inconfiável para fazer oq vc quer comparar os valores internos dos objeos

assim como no post anterior use o equals…

v[contador].toString().equals(v[contador-1].toString())

com isso vc vai estar comparando os valores armazenados, pelo que eu li são as strings dos nomes entaum vc pode utilizar similar a essa forma ai na citação :wink:

[]´s

H

Valeu galera!

Deu certo…desculpem a ignorância…rs

H

Bom galera, isso deu certo, Agora tem outro problema.

Quando entra na minha cláusula, eu preciso ver se o valor deste v[contador], é igual ao de um jToggleButton.setSelectedIcon();

Se for igual, eu seto este botão pra Enabled(false).

O problema está de novo na comparação.
Fiz como o AnjoSupremo disse, mas não deu certo neste caso. Ele entra no primeiro if, mas na hora de verificar se o botão é igual ao v[contador], dá um erro “java.lang.NullPointerException”.
Já coloquei try e catch, mas não funciona…

E

hum

ocorreu esse erro pq a pocição do vetor tah nula…

como é o eskema de verificação que tu quer fazer???
naum entendi agora como seria essa sua verificação :roll:

H

Não está nula. Eu imprimo ele logo abaixo do código e ele está com a informação que eu quero. Só q dá erro na comparação.

E

hum extranho…

cara tem como vc postar o trecho de código onde vc está fazendo essa comparação que deu erro?

vlws

H

Cara, deu certo.
Na verdade, eu teria que comparar esse v, com todos os botões e só quando v fosse igual o nome da imagem eu desabilitaria determinado botão.

Eu criei uma variável flag, que me mostrava se o botão foi ou não utilizado. Se ele foi utilizado eu faço ele ser desabilitado depois da comparação de imagens.
O que acontecia é que eu teria de verificar todos os botões. Com este flag não preciso mais.

Valew pela atenção!

E

ah tah :grin:

legal, no mais nq precisar é soh falar ai
q a galera do PJ ajuda como puder :wink:

[]'s

Criado 25 de maio de 2005
Ultima resposta 26 de mai. de 2005
Respostas 10
Participantes 4