quero saber qual a classe generica de sourceValue …
por ex … digamos que minha lista é de Usuario …
como faço para recuperar essa classe Usuario a partir de um List<?>
???
O que poderia ser feito é um reflection no retorno do método getSourceValue() para verificar o tipo de retorno…
Mas se fosse parametrizado o getSourceValue(), voce nem precisaria do reflection pois o retorno já estaria especificado na classe
F
Fernando_H_Gomes
po… me ajuuuuuuuuuda neh rhsursa :lol:
tem que ter jeito :evil:
R
rogelgarcia
Fernando H. Gomes:
po… me ajuuuuuuuuuda neh rhsursa :lol:
tem que ter jeito :evil:
Tem jeito de pegar o usuario fazendo um cast…
(Usuario)lista.get(0)
Mas saber de que tipo é a lista… tem jeito nao…
ou entao vc pode fazer um instanceof, para verificar se o retorno é de Usuario mesmo
if (lista.get(0) instanceof Usuario){
Usuario usuario = (Usuario)lista.get(0);
}
F
Fernando_H_Gomes
Mas bah… e se a lista tiver vazia ?? :shock:
que por acaso é o caso …
R
rogelgarcia
Fernando H. Gomes:
Mas bah… e se a lista tiver vazia ?? :shock:
que por acaso é o caso …
Esse é o caso onde não tem jeito
O retorno de getSourceValue() é simplismente um List???
ou List?
P
pozzo
Se a lista for um atributo acessível de uma classe, você pode fazer da seguinte forma:
pozzo atualmente eu to usando dentro de um método… mas posso tentar usar na minha classe como atributo global.
garcia … eu to fazendo um cast nele pra List<?> ou ate poderia ser simplesmente List …
é pra ser um método generico… entao nao sei qual é a classe …
R
rogelgarcia
Fernando H. Gomes:
pozzo atualmente eu to usando dentro de um método… mas posso tentar usar na minha classe como atributo global.
garcia … eu to fazendo um cast nele pra List<?> ou ate poderia ser simplesmente List …
é pra ser um método generico… entao nao sei qual é a classe …
É… só tem jeito de saber, se estiver explicitado estaticamente em algum lugar do programa (atributo, retorno de método, parametro de método, genérico da classe)…
Quando a lista é dinamica, não tem como saber mesmo…
Nem isso:
List<String>minhaLista=newArrayList<String>();//quero perguntar aqui qual é o tipo de minhaLista
Não tem jeito…
É um negócio chamado erasure… todas essas variáveis locais, perdem seus generics na compilacao…