Nome para instancias de classe

10 respostas
DAREK6920

Não sei bem se o forum correto é isto, desconfio que a pergunta seja meio banal para quem conhece java a fundo, mas mesmo assim, la vai.
Em tempo de execução preciso criar instancias de uma determinada classe pre-existente, porem necessito que cada uma delas tenha seu proprio nome, que é fornecido pelo programa durante a execução.

Algo mais ou menos assim:

10 while (x < 100){

20 String novaclasse = nclas + x.toString();

30 CLASSE novaclasse = new CLASSE();

40 }

O Problema é que a nova classe teria de se chamar “nclass1”, “nclass2” e assim por diante e não “novaclasse”.
Se alguem puder me ajudar, agradeço de montão.

10 Respostas

E

Esse tipo de coisa não se resolve desse jeito (Java não é Javascript, e mesmo em Javascript as coisas não se resolvem desse jeito normalmente), e sim com Maps.

Procure por “HashMap” ou “TreeMap” aqui no GUJ.

G

da pra fazer o que vc quer com reflexão.
veja o link http://www.guj.com.br/java/55-java-e-reflection

E

gambazinho:
da pra fazer o que vc quer com reflexão.
veja o link http://www.guj.com.br/java/55-java-e-reflection

Que mania a de usar reflection para tudo :frowning:
E esse caso não dá para resolver com reflection, já que a variável não existe e você quer criá-la.
Reflection serve só no caso em que as variáveis já foram declaradas e você quer usá-las.

G

entanglement:
gambazinho:
da pra fazer o que vc quer com reflexão.
veja o link http://www.guj.com.br/java/55-java-e-reflection

Que mania a de usar reflection para tudo :frowning:
E esse caso não dá para resolver com reflection, já que a variável não existe e você quer criá-la.
Reflection serve só no caso em que as variáveis já foram declaradas e você quer usá-las.


realmente se a classe não existe não tem como ele criar uma classe em tempo de execução… pensei que ele iria criar as classes e instanciar dinamicamente.

DAREK6920

Realmente a classe existe. Criei uma classe padrao, se é que se pode chamar assim. As instancias devem ser criadas cada uma com um nome proprio.
A classe original contem todos os metodos necessarios para o que preciso e as instancias devem te-los tambem.
Como isto seria feito usando reflection ? Pode me dar um exemplo ?

E

Espera um pouquinho. Você tem uma classe assim?

classe Bizarra {
    public MinhaClasse var1 = new MinhaClasse();
    public MinhaClasse var2 = new MinhaClasse();
    public MinhaClasse var3 = new MinhaClasse();
    public MinhaClasse var4 = new MinhaClasse();
    public MinhaClasse var5 = new MinhaClasse();
    public MinhaClasse var6 = new MinhaClasse();
    public MinhaClasse var7 = new MinhaClasse();
    public MinhaClasse var8 = new MinhaClasse();
    public MinhaClasse var9 = new MinhaClasse();
    public MinhaClasse var10 = new MinhaClasse();
...
    public MinhaClasse var100000 = new MinhaClasse();
}

??? :?: :?: :?: :?: :?: ???

DAREK6920

isso, isso, issto !

E

Credo!!! :!:!!! :!: :!: :!: :!: :!: :!: :!: :!: :!:

Crie um array em vez disso.

classe Bizarra {  
    public MinhaClasse var[] = new MinhaClasse[100];   // cria 100 posições vazias, de 0 até 99

}
DAREK6920

Ok, perfeito, mas como faço para que MinhaClasse[1] tenha os mesmos atributos que MinhaClasse ?

Vinicius_Zibetti_Res
O que vc ta qrendo ta meio confuso hein

Amigo todos vao comecar com atributos padrao

Se voce quiser modificar voce tem que fazer:

MinhaClasse[] mc = new Minhaclasse[100];

mc[1].setNome(123);

mc[2].setNome(x+mc[1].getNome());

/
Por exemplo…

Criado 30 de março de 2012
Ultima resposta 31 de mar. de 2012
Respostas 10
Participantes 4