Vc poderia usar um Map para implementar o q vc ta precisando. Num Map vc adicionar pares de valores chave/valor onde vc associar cada valor a uma chave.
Da uma olhada na documentação em HashMap.
Caso isso não seja suficiente vc vai ter que apelar para a utilização de reflexão.
Fiz duas classes, da uma olhada. Colque ambas no mesmo pacote.
Arquivo Reflexao.java
importjava.lang.reflect.*;/** * * @author David */publicclassReflexao{/** Creates a new instance of Reflexao */publicReflexao(){bola1=newBola(5);bola2=newBola(15);bola3=newBola(25);}publicvoidexecuta(){manipulaObjeto("bola1");}publicvoidmanipulaObjeto(StringnomeObjeto){// obtém os campos declaradosField[]f=getClass().getDeclaredFields();// itera pelos camposfor(inti=0;i<f.length;i++){// se achar um que bate com o nome fornecidoif(f[i].getName().equals(nomeObjeto)){try{// obtem a referencia da bola criada nesse objeto (this)Bolab=(Bola)f[i].get(this);// altera o peso da bolab.setPeso(20);}catch(IllegalAccessExceptionexc){}}}// vai exibir o peso alterado, e não o configurado no construtorSystem.out.println(bola1.getPeso()+"");}publicstaticvoidmain(String[]args){newReflexao().executa();}privateBolabola1;privateBolabola2;privateBolabola3;}
Arquivo Bola.java
/** * * @author David */publicclassBola{/** Creates a new instance of Bola */publicBola(intpeso){setPeso(peso);}publicvoidsetPeso(intpeso){this.peso=peso;}publicintgetPeso(){returnpeso;}privateintpeso;}