Associando uma String à uma variavel

1 resposta
venomtotal

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

1 Resposta

davidbuzatto

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
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;
    
}
Arquivo Bola.java
/**
 *
 * @author David
 */

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;
}

Falow!

Criado 23 de julho de 2006
Ultima resposta 23 de jul. de 2006
Respostas 1
Participantes 2