Prendre des variables par nom à partir d'une Chaîne

Exemple de code:

int width = 5;
int area = 8;
int potato = 2;
int stackOverflow = -4;

Maintenant, dire que je veux avoir de l'utilisateur en entrée une chaîne de caractères:

String input = new Scanner(System.in).nextLine();

Alors, disent les entrées de l'utilisateur potato. Comment pourrais-je récupérer la variable nommée potato et faire des trucs avec elle? Quelque chose comme ceci:

System.getVariable(input); //which will be 2
System.getVariable("stackOverflow"); //should be -4

J'ai regardé certaines choses et ne pas trouver beaucoup de choses; j'ai trouvé une référence à quelque chose appelé "l'API Reflection", mais qui semble trop compliqué pour que ce simple tâche.

Est-il un moyen de le faire, et si oui, quel est-il? Si "Réflexion" ne fonctionne en effet et si c'est la seule manière de faire, alors comment pourrais-je l'utiliser pour ce faire? La page du tutoriel pour il a toutes sortes de interne des trucs que je ne peux pas donner un sens.

EDIT: j'ai besoin de garder le Strings dans les variables pour ce que je suis en train de faire. (Je ne peux pas utiliser un Map)

Vous devez utiliser la réflexion.
Non, vous voulez utiliser un Map de chaînes à ints. La réflexion est trop pour cette tâche.
Vous pouvez ajouter vos valeurs dans un dictionnaire. Ainsi, vous obtenez une paire de clés de valeur.
Carte. simple et agréable.
Je ne pense pas que ce soit possible via la réflexion pour les variables de la méthode, seuls les attributs de classe...

OriginalL'auteur Doorknob | 2012-11-08