Criando Classes Dinamicas  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
champs
Entusiasta Java

Membro desde: 24/08/2011 14:02:23
Mensagens: 24
Offline

E ai galera, blz?
Seguinte, tenho a seguinte dúvida: tem como criar classes dinamicamente, atraves de banco de dados, arquivo, ou algum outro tipo de entrada? E se tiver, tem como gerar os anottations automaticamente?

Valeu Galera.
ssh
JavaEvangelist
[Avatar]

Membro desde: 08/10/2011 11:18:37
Mensagens: 413
Offline

ahn?
AbelBueno
Virtual Machine Man

Membro desde: 04/08/2010 09:37:57
Mensagens: 543
Offline

Você quer gerar o código das classes utilizando engenharia reversa ou quer classes novas criadas em tempo de execução?

No Netbeans, por exemplo, há uma ferramenta para ler tabelas do banco de dados e criar suas classes a partir delas.

Se for realmente para criar novas classes em tempo de execução, não seria algo tão trivial.

O que pretende fazer com isso?
champs
Entusiasta Java

Membro desde: 24/08/2011 14:02:23
Mensagens: 24
Offline

Seria algo do tipo: em um banco de dados temos o campo nome do tipo texto, e o campo idade do tipo inteiro. Ai algum processo vai ler e gerar as classes.
O que eu pretendo fazer com isso é criar uma ferramenta para criação de games.
Tipo, pode ser feita uma meta classe, para servir de base para as classes gerada?

Abraços.
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Para extrair os metadados do banco use ResultSetMetaData e DatabaseMetaData, ambas interfaces do pacote java.sql.
Para classes "dinâmicas", você pode usar a biblioteca commons bean utils, mais precisamente a classe BasicDynaClass. Para beans (entenda "objetos") dinâmicos, você pode usar a classe BasicDynaBean. Essas duas classes implementam respectivamente as interfaces DynaClass e DynaBean.

[]'s

This message was edited 1 time. Last update was at 31/10/2011 19:17:16


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
champs
Entusiasta Java

Membro desde: 24/08/2011 14:02:23
Mensagens: 24
Offline

Entendi, obrigado.
fabiofalci
GUJ Master
[Avatar]

Membro desde: 11/04/2006 09:23:14
Mensagens: 1057
Localização: Porto Alegre - RS
Offline

Algo mais avançado, com classes dinâmicas em tempo de execução, vc pode usar algo como
http://www.csg.is.titech.ac.jp/~chiba/javassist/

Olha um exemplo de uso:
https://github.com/playframework/play/blob/master/framework/src/play/db/jpa/JPAEnhancer.java
[WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team