Nome Dinâmico de Classe. [RESOLVIDO]

Olá!

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

Abraço!

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

[quote=MABS]Olá!

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

Abraço![/quote]

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.

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!

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!

Para que uma classe para cada equipamento?

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

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!

[quote=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!
[/quote]

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.

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!

[quote=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![/quote]

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

Sucesso amigo!