我正在制作一个虚拟机器人互相争斗的小游戏。我有一系列这些机器人的名称,但我不知道如何加载它们。它可能在代码中更清晰:
String[] classes={"Bot1","Bot2","Bot123"};
Object[] bots=new Object[classes.length];
for(int i=0;i<classes.length;i++){
bots[i]=UnknownFunction(classes[i]);
}
其他详情:
package Arena;
public class Bot {
public void main(String args[]){
}
public void init(){
System.out.print("Loaded");
}
}
在主文件中:
bot=Class.forName("Arena.Bot").newInstance();
bot.init();
答案 0 :(得分:1)
您需要Class.forName()
方法来加载您的类,然后newInstance()
方法来实例化它们。假设你有0-arg constructor
: -
bots[i] = Class.forName(classes[i]).newInstance();
另请注意,这些类名必须是fully qualified
个名称。
答案 1 :(得分:0)
String[] classes = {"Bot1", "Bot2", "Bot123"};
Object[] bots = new Object[classes.length];
for(int i = 0; i < classes.length; i++)
{
bots[i] = Class.forName(classes[i]).newInstance();
}