Cast com Vector

4 respostas
S

Olá a todos,
Estou tendo problemas em fazer cast com um vector… a coisa deve ser simples… mas…

  • tenho um vector no qual eu estou adicionando instancias da classe foo
  • Dentro de um método, eu quero pegar os valores desse vector, entao:
foo elemento_do_vetor;
Float numero;
elemento_do_vetor = (foo)vector.elementAt(0);
numero  = new Float(elemento_do_vetor().numero);

A questao é que elemento_do_vetor().numero é igual a NULL, porém o número de elementos do vector está correto ( > 0).

A classe foo tem varios construtores, e o vector contém elementos iguais.
Será que o vector tá se perdendo e apontando para algum outro construtor ??

Como posso resolver ?

Obrigado.

4 Respostas

C

Vc poderia explicar melhor o q vc quer fazer? Vc quer fazer um método que retorne um objeto Foo que está dentro do vector?

S

Na verdade e trecho de código está dentro de um método…

Vc poderia explicar melhor o q vc quer fazer? Vc quer fazer um método que retorne um objeto Foo que está dentro do vector?

O que eu quero é: pegar os objetos que estão dentro do vector e acessar os atributos deles.

Da forma como estou fazendo esses objetos existem, porém seus atributos estão nulos.

Obrigado.

_fs

A sintaxe está incorreta. O correto seria

foo elemento_do_vetor;
Float numero;
elemento_do_vetor = (foo)vector.elementAt(0);
numero  = new Float(elemento_do_vetor.numero); // sem os parenteses vazios

E, só para garantir, está fazendo algo assim:

Foo element = new Foo();
Vector vector = new Vector();
vector.add( element );

Foo elemento_do_vetor = ( foo ) vector.elementAt( 0 );
Float numero = new Float( elemento_do_vetor.numero );

certo?

S

Sim, eu digitei errado colocando os parenteses em

elemento_do_vetor.numero
Foo element = new Foo();
Vector vector = new Vector();
vector.add( element );

Foo elemento_do_vetor = ( foo ) vector.elementAt( 0 );
 Float numero = new Float( elemento_do_vetor.numero );

Sim, é isto que está sendo feito.

Note-se que em:

Foo elemento_do_vetor = ( foo ) vector.elementAt( 0 );
 Float numero = new Float( elemento_do_vetor.numero );

A classe foo não está sendo instanciada. É criado somente uma referencia para apontar os objetos que estão no vector.

Criado 12 de maio de 2005
Ultima resposta 12 de mai. de 2005
Respostas 4
Participantes 3