Je crée un programme où je crée des références de classe au cours de l'exécution en utilisant par exemple:Référence une variable qui ne peut pas être résolue au moment de la compilation. (Java)
String hero1builder = "index.";
System.out.println("Enter hero 1:");
hero1 = scanner.nextLine();
hero1builder += hero1;
hero1cls = Class.forName(hero1builder);
System.out.println("Hero 1 found");
Tout ce code est à l'intérieur d'un try/catch et fonctionne comme prévu. Mon défi vient quand je veux référencer les variables à l'intérieur de la référence de classe I. À la compilation, java remarque que la variable que je veux référencer ici ne peut pas encore être résolue et ne sera pas compilée. Comment puis-je contourner cela, afin que je puisse référencer les variables à l'intérieur de la classe?
String[] hero1list = hero1cls.counterList;
J'ai essayé de nombreuses méthodes pour référencer la variable counterList, mais aucune n'a fonctionné. Il est important que hero1cls reste dynamique, sinon mon programme ne pourra pas fonctionner.
(Dans cet exemple, index est le package, donc index.Abaddon.counterList est ce que je veux référencer.Ceci fonctionne parfaitement si je l'écris explicitement comme ça.) (PS 2: Ce n'est pas un problème de . counterList champ est la seule chose qui jette une erreur dans ce programme et des méthodes telles que hero1cls.getField() travail)
Voici un exemple des classes je référencement.
package index;
public class Abaddon {
public static String[] counterList = {"Axe",
"AncientApparition",
"Doom",
"Lina",
"Lion",
"OutworldDevourer",
"ShadowDemon",
"Slark",
"Undying"
};
}
classes que vous faites de cette façon besoin de 'implement' une «interface» commune. Recherchez ces mots clés et comment le coder. (Aussi, 'classForName()' est certainement la mauvaise approche.Faites juste une classe régulière, ça sera plus facile.) – markspace