Pegar Tipo do Parametro do Array  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
bestlinux
JavaEvangelist
[Avatar]

Membro desde: 30/06/2008 13:18:23
Mensagens: 359
Offline

Pessoal,

Preciso do seguinte.

Tenho um array de String, por exemplo:

public static void metodoConsulta(Object retorno) throws SecurityException, NoSuchFieldException
{
ArrayList<?> teste = (ArrayList<?> retorno;

Eu preciso saber o tipo de parametro que este ArrayList esta armazenando para depois fazer um instanceof. Exemplo:

if (tipo_do_parametro_do_array_list instanceof String)
...

if (tipo_do_parametro_do_array_list instanceof Integer)
...

Tem como fazer isso ?

This message was edited 3 times. Last update was at 15/09/2010 17:37:54


http://www.bestlinux.com.br
bestlinux
JavaEvangelist
[Avatar]

Membro desde: 30/06/2008 13:18:23
Mensagens: 359
Offline

Ninguem ???

http://www.bestlinux.com.br
entanglement
GUJ Hacker

Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline

A resposta simples, infelizmente, é não. Há um palavrão bem chato para isso em inglês - "generic types are not reified in Java". Procure isso se tiver alguma curiosidade.

Se você souber que o array contém elementos de apenas um tipo, no entanto, você pode verificar se o ArrayList é vazio ou não, e se não for, pegar o tipo do primeiro elemento (ou do primeiro elemento não-nulo, se você aceitar null como elemento desse ArrayList).
bestlinux
JavaEvangelist
[Avatar]

Membro desde: 30/06/2008 13:18:23
Mensagens: 359
Offline

entanglement wrote:A resposta simples, infelizmente, é não. Há um palavrão bem chato para isso em inglês - "generic types are not reified in Java". Procure isso se tiver alguma curiosidade.

Se você souber que o array contém elementos de apenas um tipo, no entanto, você pode verificar se o ArrayList é vazio ou não, e se não for, pegar o tipo do primeiro elemento (ou do primeiro elemento não-nulo, se você aceitar null como elemento desse ArrayList).


Bom, infelizmente, o jeito de fazer isso é na base da famosa "marretada". Mas vamos la, fiz uma solução, vou deixar aqui para quem precisar algum dia:



Lembrando que funcionou apenas pq meu Array foi alimentado antes, ou seja, eu não passo nulo, tem sempre um elemento. Sendo que, o que eu realmente precisava era passar apenas o Array nulo, massss..ta resolvido.

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team