Tipo, o que quero é meio complexo.
Seria eu ter um metodo que recebe uma string(que é o nome da variavel) e passa a manipular a variavel em questao
tipo mais ou menos assim
public void main(String[] args){
String nomePessoa;
String x;
nomePessoa=“joaozinho”;
//a variavel x contem o “nome da variavel”
x = “nomePessoa”;
//A variavel “VinculaStirng” recebe de x o nome da variavel
VinculaString v = new VinculaString(x);
//vai imprimir “joaozinho”
System.out.print(VinculaString);
}
agradeco qualquer ajuda
Venom
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
[code]
import java.lang.reflect.*;
/**
*
-
@author David
*/
public class Reflexao {
/** Creates a new instance of Reflexao */
public Reflexao() {
bola1 = new Bola( 5 );
bola2 = new Bola( 15 );
bola3 = new Bola( 25 );
}
public void executa() {
manipulaObjeto( "bola1" );
}
public void manipulaObjeto( String nomeObjeto ) {
// obtém os campos declarados
Field[] f = getClass().getDeclaredFields();
// itera pelos campos
for ( int i = 0; i < f.length; i++ ) {
// se achar um que bate com o nome fornecido
if ( f[ i ].getName().equals( nomeObjeto ) ) {
try {
// obtem a referencia da bola criada nesse objeto (this)
Bola b = ( Bola ) f[ i ].get( this );
// altera o peso da bola
b.setPeso( 20 );
} catch ( IllegalAccessException exc) {
}
}
}
// vai exibir o peso alterado, e não o configurado no construtor
System.out.println( bola1.getPeso() + "" );
}
public static void main(String[] args) {
new Reflexao().executa();
}
private Bola bola1;
private Bola bola2;
private Bola bola3;
}[/code]
Arquivo Bola.java
[code]
/**
*
public class Bola {
/** Creates a new instance of Bola */
public Bola( int peso ) {
setPeso( peso );
}
public void setPeso( int peso ) {
this.peso = peso;
}
public int getPeso() {
return peso;
}
private int peso;
}[/code]
Falow!