我創造,我用e.g創建運行時類引用的程序:引用無法在編譯時解析的變量。 (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");
所有這些代碼是在try/catch內,並按照預期工作。 當我想引用類引用中的變量時,我的挑戰就來了。
在編譯時,java發現我想在這裏引用的變量還不能被解析,並且它不會被編譯。我怎麼能繞過這個,所以我可以引用類中的變量?
String[] hero1list = hero1cls.counterList;
我試過很多方法來引用變量counterList,但都沒有工作。 hero1cls保持動態是非常重要的,否則我的程序將無法運行。 (在這個例子中,index是包,因此index.Abaddon.counterList是我想要引用的內容。如果我明確地寫它,這是完美的。)(PS 2:這不是問題。範圍counterList的是,在這個方案會引發錯誤的唯一的事情,和方法,如hero1cls.getField()工作)
這裏是班,我引用的例子:
package index;
public class Abaddon {
public static String[] counterList = {"Axe",
"AncientApparition",
"Doom",
"Lina",
"Lion",
"OutworldDevourer",
"ShadowDemon",
"Slark",
"Undying"
};
}
類你做這樣需要'implement'一個普通的'界面'。查找這些關鍵詞以及如何對其進行編碼。 (另外,'classForName()'幾乎肯定是錯誤的方法,只要定期上課,會更容易。) – markspace