Criação de variável com cast dinâmico.. tem como?

6 respostas
programadormaia

Olá Galera!!!

To com um problema aqui…
eu tenho que criar uma variável cujo eu não sei o Tipo dela.
O tipo dessa varável vai depender do tipo dos objetos que se encontra em minha lista (List)

Tipo:

Class type = null;
Object xxx = null;

for(int v = 0 ; v < listaSelecione.size(); v++) {

type =  listaSelecione.getClass().getComponentType();

xxx =   ( type ) listaSelecione.get(v);

}

coloquei esse exemplo…pra ver se ajuda a explicar a minha duvida…
essa parada ai nao esta funcionando…
foi apenas uma tentativa que eu fiz nessa tarde doida de trabalho!!!

ABS!!!

6 Respostas

jack_utfpr

Acredito que voce possa tentar…

Felagund

Por que vc não usa generics?

um valor Object aceita qualquer valor, vc não precisa ficar fazendo cast toda a vez.

ou vc pode usar um

public &lt;V&gt; V processaLista(List&lt;V&gt; listaSelecione){
  for(V obj : listaSelecione){
    //fazer algo com o objeto
  }
}
B

se os tipos da lista forem fixos da para usar o instance of para comparar, mas não é o ideal.

J

Beavis_:
se os tipos da lista forem fixos da para usar o instance of para comprar, mas não é o ideal.

Acho que essa seria a melhor opção. Varrer a lista perguntando o tipo e dando o cast necessário.

Fernando_H_Gomes

Nao é necessario saber a classe nem nada…
como o jack comentou.

type é uma Class
um objeto class tem este método cast …
entao…
pegue o object.getClass()
e o método “cast(Object)”
a classe que se vire pra fazer cast …

sergiotaborda

programadormaia:
Olá Galera!!!

To com um problema aqui…
eu tenho que criar uma variável cujo eu não sei o Tipo dela.
O tipo dessa varável vai depender do tipo dos objetos que se encontra em minha lista (List)

Tipo:

Class type = null;
Object xxx = null;

for(int v = 0 ; v < listaSelecione.size(); v++) {

type =  listaSelecione.getClass().getComponentType();

xxx =   ( type ) listaSelecione.get(v);

}

Se XXX é Object porque precisa do cast ?
Pois é, não precisa.

for(int v = 0 ; v < listaSelecione.size(); v++) {
  Object  xxx =   listaSelecione.get(v);
}
Criado 29 de janeiro de 2010
Ultima resposta 29 de jan. de 2010
Respostas 6
Participantes 7