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
Acessando metodos dentro de um vector
7 Respostas
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.
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…
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
()