String als Variablenname?

D3rP4t3

Grünschnabel
Hallo,

Ich bin grad dabei ein kleines Programm zu schreiben und steh jetzt vor dem Problem, dass ich eine Methode habe die mir je nach Wert einen anderen String zurück geben soll. Zu dem muss ich am Ende noch ein Zeichen hängen und die ganze Zeichenkette soll mir dann als Variablenname dienen. Das Ganze soll ca. so aussehen:


Code:
int VariabaleA, VariableB, testA, testB, a=1, b=2;
......
MethodenName(a)+"A"=20;
MethodenName(b)+"A"=30;
//Also ist dann VariableA=20 und testA=30.
.......
.......
public static String MethodenName(int ZuweisungsNummer)
{String a="Variable", b="test";
if (ZuweisungsNummer==1)
   return a;
if (ZuweisungsNummer==2)
   return b;
usw........
}
Ob a oder b wird eingelesen. Ich hoffe das war einigermaßen verständlich erklärt was ich machen will.
Ich hab auch schon versucht durch Google was zu finden, hab aber nix brauchbares gefunden und hoffe das ihr einem Anfänger weiterhelfen könnt :)
 
Hallo,

du könntest eine Hashmap nutzen. Da kannst du Keys und Values angeben. Da könntest du halt als Key deinen Variablennamen nehmen und halt als Value den Wert den du zuweisen möchtest.

MFG

Sascha
 
HI, ich hätte eine Antwort anzubieten^^.
Code:
import java.lang.reflect.Field;

public class Main {

    public static void main(String[] args) {
        new Main();
    }
   public int VariableA = 99, VariableB, testA, testB, a=1, b=2;
    public Main(){
        Object o;
        Field f;
        Class cl = this.getClass();
        System.out.println(MethodenName(a)+"A");
        try {
            f = cl.getField(MethodenName(a)+"A");
            f.setInt(this, 20);
            o =  f.get(this);
            System.out.println(o);
            System.out.println(VariableA);
        }  catch (NoSuchFieldException n)
        {
           n.printStackTrace();
        } catch (IllegalAccessException n)
        {
           n.printStackTrace();
        }
        
    }
  String MethodenName(int ZuweisungsNummer)
{
    String a="Variable", b="test";
        if (ZuweisungsNummer==1)
            return a;
        if (ZuweisungsNummer==2)
            return b;
 return null;
}
}


Output ist dann:
VariableA
20
20
20

LG
 
Zurück