Nome Dinâmico de Classe. [RESOLVIDO]

9 respostas
MABS

Olá!

É possível criar um classe que seu nome depende do valor de uma variável?

Abraço!

9 Respostas

H

Amigo:

crie uma interface que seja implementada por todas
as classes que voce quer instanciar a partir de variáveis

Depois, faça isso:

String className = "Forn"; // pega nom da classe
				Class clazz;
				try {
					MyInterface c;
					clazz = Class.forName(className);
					c = (MyInterface) clazz.newInstance();

pronto, o objecto c ja é uma instância da classe
que foi passada na variável.

Dá uma olhada na Api reflection

rmendes08

MABS:
Olá!

É possível criar um classe que seu nome depende do valor de uma variável?

Abraço!

Qual é o seu problema real ? O que você espera resolver com isso ? É até possível criar uma classe em runtime, com instrumentação de bytecode, mas é uma solução extrema, talvez seja possível resolver o seu problema com recursos bem mais simples.

MABS

Olá, rmendes08!

Eu quero realizar o seguinte processo:

Quando for criado um objeto de uma classe POJO chamada “NomeEquipamento”, que tem uma única variável de atributo chamada “nome”, deverá automaticamente ser criado uma segunda classe POJO chamada “NomeEquipamento” + “nome”, ou seja, se a variável de atributo “nome” tiver como valor “teste” o nome da classe POJO a ser criada será “NomeEquipamentoTeste”.

Este é o problema que eu estou tendo.

Valeu, pela atenção rmendes08!

MABS
horacio_barros:
Amigo:

crie uma interface que seja implementada por todas
as classes que voce quer instanciar a partir de variáveis

Depois, faça isso:

String className = "Forn"; // pega nom da classe
					Class clazz;
					try {
						MyInterface c;
						clazz = Class.forName(className);
						c = (MyInterface) clazz.newInstance();

pronto, o objecto c ja é uma instância da classe
que foi passada na variável.

Dá uma olhada na Api reflection

Olá, horacio_barros!

Muito Obrigado pela ajuda mesmo vou testar agora mesmo!
Quando você escrever um código coloca ele entre a tag [.code.][./code.] sem esses pontos (.) !

Abraço!

Dapcapix

Para que uma classe para cada equipamento?

Porque não faz uma classe Equipamentos e uma outra para TipoEquipamento?

MABS

Olá, Dapcapix.

Eu preciso desta função, pois estou usando NoSQL, sendo assim, tenho que criar alguns função de agregação. E quero gerar uma nova Entidade para cada “nome” cadastrado na Entidade “NomeEquipamento”.

Você sabe como eu faço para que uma variável defina o nome da classe?

Abraço!

nel

MABS:
Olá, Dapcapix.

Eu preciso desta função, pois estou usando NoSQL, sendo assim, tenho que criar alguns função de agregação. E quero gerar uma nova Entidade para cada “nome” cadastrado na Entidade “NomeEquipamento”.

Você sabe como eu faço para que uma variável defina o nome da classe?

Abraço!

Oi!

Você prestou atenção no que o rmendes08 disse?
Você simplesmente vai basear todo o seu DAO em reflection. Como está o seu conhecimento com esta API? :slight_smile:

Espero que esteja bem avançado, porque o seu problema não será simplesmente criar uma classe com um nome em tempo de execução, há outras variaveis que este tipo de implementação exige. Mas como foi dito, não vejo outra possibilidade sem o uso de reflection. Eu conheci um cara que usava Reflection ao extremo, fica extremamente flexível e dinamico o código, mas no fim, você sempre cria uma classe especialista e, a complexidade do que era feito, era bem alta.

Bom, fica a seu critério o resto. Eu não recomendo que faça isso.
Abraços.

MABS

Olá, nel.

Sim, li com atenção o que ele disse!
Felizmente o Google deixou uma API de baixo nível disponível para trabalhar com o NoSQL, sendo assim, vou fazer um pequena ferramenta para gerar de forma dinâmica o nome das tabelas. Lógico que essa idéia não foi minha veio do Sergio Lopes da Caelum!
Agora só basta eu implementar!RS*

Valeu, pela ajuda de todos. Mas como foi comentado pelo “rmendes08” e posteriormente enfatizado pelo “nel” não foi uma boa opção a idéia de fazer uma classe com nome dinâmico!

Abraço!
Sucesso!

nel

MABS:
Olá, nel.

Sim, li com atenção o que ele disse!
Felizmente o Google deixou uma API de baixo nível disponível para trabalhar com o NoSQL, sendo assim, vou fazer um pequena ferramenta para gerar de forma dinâmica o nome das tabelas. Lógico que essa idéia não foi minha veio do Sergio Lopes da Caelum!
Agora só basta eu implementar!RS*

Valeu, pela ajuda de todos. Mas como foi comentado pelo “rmendes08” e posteriormente enfatizado pelo “nel” não foi uma boa opção a idéia de fazer uma classe com nome dinâmico!

Abraço!
Sucesso!

É isso ai!
Nada como trocar ideias e boas pesquisas!

Sucesso amigo!

Criado 17 de junho de 2011
Ultima resposta 17 de jun. de 2011
Respostas 9
Participantes 5