Extrair generics com reflection  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
thiago_algo
JavaTeenager

Membro desde: 27/07/2004 11:23:41
Mensagens: 186
Offline

Pessoal,

Se eu declarar uma collection como abaixo:

Vector<MinhaClasse> vetor = new Vector<MinhaClasse>();

Tem como eu recuperar a referência a MinhaClasse com reflection, ou seja, tem como eu saber que tipo de objeto está vindo nesta collection?

Obrigado
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

A resposta simples é "não", devido ao conceito de "erasure".
Entretanto, rode e estude o programa abaixo . (Evite criar classes anônimas como as mostradas abaixo; estão aí só para você entender alguns conceitos).

[WWW]
mister__m
Virtual Machine Man
[Avatar]

Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline

Como o thingol disse, não existe uma maneira direta de ter acesso ao parâmetro, mas dependendo da situação existem outras soluções. O que exatamente você quer fazer?

Michael Nascimento Santos, aka Mister M

Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m
[WWW]
thiago_algo
JavaTeenager

Membro desde: 27/07/2004 11:23:41
Mensagens: 186
Offline

mister__m wrote:Como o thingol disse, não existe uma maneira direta de ter acesso ao parâmetro, mas dependendo da situação existem outras soluções. O que exatamente você quer fazer?


Temos um sistema legado em Kylix que recebe uma estrutura própria em xml contendo dados. O problema é que o Kylix precisa dos metadados, ou seja, tipo dos campos, tamanhos dos campos. Nosso webservice atende as silicitações, gera os xmls e devolve e isso funciona muito bem, desde que a collection que contém nossos VOs ou TOs não esteja vazia, porque daí não conseguimos pegar os metadados deles. O problema é que mesmo que a resposta do servico seja zero "registros" o Kylix necessita dos metadados. Como estamos trabalhado java 5 e possuímos o recurso de generics, pensamos em capturar as informações de metadados diretamente da referência a generics na collection. Um probelmas que temos é que o sistema em kylix é legado, ou seja, não podemos mais fazer alterações nele, então temos que alterar os nossos serviços para atender o kylix. E uma outra coisa, a conversão para xml que o kylix precisa receber é feita automaticamente, por isso precisamos pegar o tipo de objetos que a collection deveria possuir em runtime.

Obrigado pela atenção
danieldestro
Moderador
[Avatar]

Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline

This message was edited 2 times. Last update was at 19/02/2008 15:46:04


gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol
[WWW]
rafaelsantini
JavaBaby
[Avatar]

Membro desde: 28/03/2006 19:44:28
Mensagens: 86
Localização: Capivari de Baixo - SC
Offline

Estou com o mesmo tipo de problema: identificar o tipo de uma lista.

Recuperar o tipo de um array é possível:Output:

java.lang.String

Estou realizando a implementação de um conversor genérico para o JSF baseado no artigo Generic converter for domain model in JSF.

O meu problema ocorre quando tenho um selectManyCheckBox, pois o valor dele é uma lista. Então, ao recuperar o tipo do valor do componente [component.getValueBinding("value").getType(context)], o tipo lista é retornado. Porém, preciso saber o tipo dessa lista.

Com a possibilidade de recuperar essa informação usando um array, acho que vou substituir a lista por um array. O que vocês pensam sobre isso?

[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team