| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2007 12:28:03
|
nicholas.bittencourt
JavaTeenager
![[Avatar]](/images/avatar/7522a10ddf6916abccf0163b58ca0543.jpg)
Membro desde: 17/01/2007 00:17:42
Mensagens: 161
Localização: Niterói, RJ, Brasil
Offline
|
Pessoal,
Estou criando uma classe ObjectHelper para realizar as operações basicas em cima de um objeto, como compare, hash e toString, usando genéricos e annotations. Meu problema acontece quando tenho que descobrir dinamicamente a Classe que o Helper se refere quando ele é criado dinamicamente... Deixa eu explicar.
Se eu extendo o ObjectHelper pra uma classe especifica da forma abaixo
eu consigo pegar a classe pessoa usando o codigo
O problema dessa implementação é que só funciona com herança e por isso eu teria que criar uma classe para cada entidade do meu sistema. A minha ideia é criar os Helpers dinamicamente como fazemos com as Collections...
Nesse caso acima, como eu não estou extendendo nenhuma classe, nao consigo descrobrir a classe que meu Generico esta referenciado. Alguem tem alguma sugestão?
|
--
Nicholas Dacal A. Bittencourt
http://goronah.blog.br
We also realized that solving everyone?s problems was too big of a challenge for the first release. It would be better to build a product that a lot of people love, than one that everyone tolerates (...) - Paul Buchheit, Gmail Engineer |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2007 12:45:24
|
kaoe
JavaChild
![[Avatar]](/images/avatar/6e7d5d259be7bf56ed79029c4e621f44.jpg)
Membro desde: 02/02/2005 20:19:45
Mensagens: 125
Offline
|
Se estou correto pelo que li de genéricos não tem como mais você pode colocar no construtor do seu helper um parametro com o Class que ele é feito.
algo como:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2007 13:20:41
|
nicholas.bittencourt
JavaTeenager
![[Avatar]](/images/avatar/7522a10ddf6916abccf0163b58ca0543.jpg)
Membro desde: 17/01/2007 00:17:42
Mensagens: 161
Localização: Niterói, RJ, Brasil
Offline
|
Mas ai você concorda que estou criando uma redundância de parêmetros, né? Já crio a classe como Genérico pro usuario não ter esse tipo de problema e ele ainda precisa passar um parâmetro repetido... :/
O pior é que talvez essa seja a unica solução.
|
--
Nicholas Dacal A. Bittencourt
http://goronah.blog.br
We also realized that solving everyone?s problems was too big of a challenge for the first release. It would be better to build a product that a lot of people love, than one that everyone tolerates (...) - Paul Buchheit, Gmail Engineer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2007 13:32:07
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Se você tiver a paciência de ler o FAQ de Genéricos da Angelika Langer ( http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html ), deve encontrar uma resposta a suas perguntas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2007 14:09:05
|
nicholas.bittencourt
JavaTeenager
![[Avatar]](/images/avatar/7522a10ddf6916abccf0163b58ca0543.jpg)
Membro desde: 17/01/2007 00:17:42
Mensagens: 161
Localização: Niterói, RJ, Brasil
Offline
|
Realmente não existe uma solução explicita no Javadoc ou nos manuais da Sun...
|
--
Nicholas Dacal A. Bittencourt
http://goronah.blog.br
We also realized that solving everyone?s problems was too big of a challenge for the first release. It would be better to build a product that a lot of people love, than one that everyone tolerates (...) - Paul Buchheit, Gmail Engineer |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2007 01:05:26
|
fre_d
Java Ninja
Membro desde: 13/06/2007 17:42:02
Mensagens: 259
Localização: Lages - SC
Offline
|
Já tentei fazer isso tb e não encontrei solução, na época encontrei um bug no site da sun. Da uma pesquisada lá.
Flw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2007 02:38:10
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
nicholas.bittencourt wrote:Pessoal,
Estou criando uma classe ObjectHelper para realizar as operações basicas em cima de um objeto, como compare, hash e toString, usando genéricos e annotations. Meu problema acontece quando tenho que descobrir dinamicamente a Classe que o Helper se refere quando ele é criado dinamicamente... Deixa eu explicar.
Tudo bem que vc crie essas funções para devertimento, mas numa aplicação real, elas não devem ser definidas fora do objeto.
O problema com a sua abordagem é que a sua classe não precisa ser genérica em primeiro lugar, mas se for,será apenas para facilitar a escrita e a tipagem... assim
Uso
O objetivo de usar reflection é não precisar saber qual é a classe especifica,e portanto generics é desnecessário neste caso.
Como disse antes, e repito, hashCode() , toString() e compare() não devem ser implementados de forma genérica como vc está tentando, e sim dentro dos objetos correspondentes... mas ai fica como fazer, se vc quiser muito fazer isso...
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/06/2007 14:52:43
|
mister__m
Virtual Machine Man
![[Avatar]](/images/avatar/89b9c689a57b82e59074c6ba09aa394d.jpg)
Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline
|
nicholas.bittencourt wrote:
Creio eu que isso:
deve funcionar, mas é um baita code smell.
|
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 |
|
|
 |
|
|