Acessando metodos dentro de um vector

pessoal… to precisanu de um helpzim… to usando a classe Vector, que eh um vetor de objetos…
ai eu qria acessar metodos desses objetos dentro desse vetor

achei q pudesse ser algo como vec.elementAt(0).metodo() … mas tah errado
alguem pode me ajudar

provavelmente vc precisa fazer um casting…

suponha que voce tenha uma classe chamada Teste
e seus objetos do vetor sao do tipo Teste

vc entao poderia fazer assim

Teste t = (Teste)vec.elementAt(0);
t.metodo();

ou ainda

Teste t = (Teste)vec.get(0);
t.metodo();

ou ainda

((Teste)(vec.elementAt(0))).metodo();

espero ter ajudado

o q eu naum qria fazer era declarar novos objetos para receber os objetos jah declarados… haja memoria… imagina eu tenho um vetor de 15 objetos
e depois eu declaro mais 15 pra receber esses 15… acho um desperdicio…

o q eu naum qria fazer era declarar novos objetos para receber os objetos jah declarados… haja memoria… imagina eu tenho um vetor de 15 objetos
e depois eu declaro mais 15 pra receber esses 15… acho um desperdicio…

se não me engano…
se vc tem:

AlgumaClasse xxx = new AlgumaClasse(); vetor.add(xxx); /* É assim mesmo? Não to lembrado de cabeça como adiciona elementos no Vector */ AlgumaClasse yyy = vetor.get(0);

vc só vai ter um objeto alocado na memoria, não precisa de memoria extra.

e acho que os generics do Tiger(Java 5) iriam ajudar nesse caso.

[quote=“vammpiro”]o q eu naum qria fazer era declarar novos objetos para receber os objetos jah declarados… haja memoria… imagina eu tenho um vetor de 15 objetos
e depois eu declaro mais 15 pra receber esses 15… acho um desperdicio…[/quote]

Quando se faz isso:

AlgumaClasse a = new AlgumaClasse();

Vector vetor = new Vector();
vetor.add(a);

AlgumaClasse b = (AlgumaClasse) vetor.get(0);

você não cria outro objeto da classe AlgumaClasse. Simplesmente b e a passam a referenciar o mesmo objeto. É parecido com a idéia de apontadores (ponteiros)…

olha soh…
acho q objetos assim naum devem ser passados por referencia… por exemplo…

SSSS s = new SSSS();
SSSS ss = new SSSS();
s = ss;
ss.fecha_resultSet();

vamos supor q essa classe contem um metodo fecha resultSet… se for por referencia… o resultSet das duas tem q ser fechado automaticamente… e eu creio q isso naum deve acontecer…

Olá,
mas é exatamente isso o que acontece com referencias

Se voce cria ss, e s, e depois atribui s = ss;

s e ss passa a referenciar o mesmo objeto na memoria. Se voce chamar tanto s.fecha_resultSet() como ss.fecha_resultSet(), o objeto executara o metod para as duas referencias

Se voce quer criar um objeto s igual a ss e sejam objetos diferentes na memoria, voce usa o metodo clone() do objeto, que implementa a interface Cloenable

()