| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2009 15:40:54
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
Oi amigos!
Tenho uma rotina que pega um array de Field desse Field pego o getClass(), agora precisaria saber se essa classe é uma classe Java ou uma classe qualquer criada por mim, to tentando fazer a rotina bem genérica, alguma sugestão?
Obrigado!
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2009 16:27:11
|
hiram
JavaChild
![[Avatar]](/images/avatar/245dc4da469586f1dc24662b870e224c.jpg)
Membro desde: 13/03/2009 03:03:20
Mensagens: 116
Localização: Belo Horizonte/MG
Offline
|
Vou ver se acho uma solução mais interessante.
Que tal olhar pelo package da classe?
http://java.sun.com/javase/6/docs/api/java/lang/Class.html
Ou ainda, pelo Fully Qualified Name da classe.
Se for algo "java.*" ou "javax.*" é uma classe da Java API, boa parte dá pra eliminar, mas não dá pra tomar isso como regra geral.
No link http://java.sun.com/javase/6/docs/api/ tem a lista de todos os packages.
Bom, taí a sugestão.
[]'s
This message was edited 1 time. Last update was at 15/06/2009 16:31:03
|
"Conhecereis a verdade e a verdade vos libertará" - João 8:32
Blog: http://jotageek.blogspot.com
Sun Java Certified Programmer 6 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2009 16:59:30
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Rode o programa a seguir. Ele pode imprimir algo como:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2009 17:55:51
|
ozix
JavaEvangelist
Membro desde: 25/05/2006 18:00:15
Mensagens: 326
Localização: Porto Velho
Offline
|
Programa com crise de identidade!!!
Quem sou eu? http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getName()
De onde vim? http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getPackage()
Isso, é claro, supondo que você sabe pelo package o que é seu.
|
O céu é azul porque a matrix roda em Windows |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/06/2009 21:08:53
|
hiram
JavaChild
![[Avatar]](/images/avatar/245dc4da469586f1dc24662b870e224c.jpg)
Membro desde: 13/03/2009 03:03:20
Mensagens: 116
Localização: Belo Horizonte/MG
Offline
|
thingol wrote:Rode o programa a seguir. Ele pode imprimir algo como:
Opa Thingol... Não entendi exatamente como essa solução funciona. Pode dar uma luz?
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2009 07:50:20
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
obrigado pelas dicas mas o o nome da classe ou a package não me adiantariam porque queria deichar algo bem genérico que eu fizesse uma lib e jogasse num projeto e pudesse usar, se engessar uma package quando tenta usar num outro projeto vou ter que alterar a package ou então faezr uma package com aquele nome para ele achar as classes.
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2009 07:53:52
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
po thingol vlwww sempre salvando a galera
acho que da pra usar o que você postou ali em cima
=D
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2009 08:30:59
|
gomesrod
GUJ Ranger
![[Avatar]](/images/avatar/5de6755473dc988fe6c7db81f26a53ac.jpg)
Membro desde: 11/05/2007 19:46:22
Mensagens: 901
Offline
|
marcosharbs wrote:obrigado pelas dicas mas o o nome da classe ou a package não me adiantariam porque queria deichar algo bem genérico que eu fizesse uma lib e jogasse num projeto e pudesse usar, se engessar uma package quando tenta usar num outro projeto vou ter que alterar a package ou então faezr uma package com aquele nome para ele achar as classes.
Na verdade não fica tão engessado assim: se você usar as convenções de nomeação, todos os pacotes começam pela identificação da empresa (nome do domínio na internet) e o projeto. O que vem depois disso você escolhe, da maneira que ficar mais organizado.
Então se você pegar apenas o começo do nome do pacote a sua lib pode ser usada em todos os projetos de uma determinada empresa que vai funcionar.
Você só vai precisar de algo mais genérico que isso se quiser usar em empresas diferentes, ou então se estiver desconfiado que alguém por aí não anda nomeando os pacotes corretamente
Nesse caso vale a Super-solução do thingol.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2009 08:41:56
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Gostaria que alguém rodasse o programa em uma JVM da IBM ou da BEA. Na JVM da Sun, se uma classe já está no "boot classpath" (ou seja, aquelas classes que ficam em java.*, javax.* ou então em jre/lib/ext, o seu classloader é null; mas não sei se em outras JVMs podemos supor isso. )
Perguntinha... suponhamos que você tenha posto o jar do driver do seu banco de dados em jre/lib/ext. Qual é o seu classloader?
Dizer que o classloader é null é uma solução que não resolve essa ambiguidade.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2009 15:17:51
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
eu rodei thingol e usei aquele solução ali, se for uma classe do java ele retorna sempre null, do contrário me retorna uma String, e funcionou para solucionar o problema aqui.
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/06/2009 15:22:46
|
marcosharbs
Virtual Machine Man
![[Avatar]](/images/avatar/8d497e638156b68197ed9ad0978eaeaf.jpg)
Membro desde: 01/08/2008 11:53:39
Mensagens: 645
Offline
|
sim gomesrod é que essa solução não é para a empresa na verdade oque fiz foi um Data Source Genérico para o iReport, vc passa uma List de um objeto para ele e ele busca os atributos das classes desse objeto asism como das classe pai e filhas e também das classe que ele se relaciona, e passa os campos que o iReport utiliza no relatório, dai não queria deixar engessado a nomenclatura de pacotes.
|
======================================================
Blog com foco em desenvolvimento web com java.
http://marcosharbs.wordpress.com/
====================================================== |
|
|
 |
|
|