从Java中的变量获取类

时间:2012-11-22 21:18:09

标签: java

我正在制作一个虚拟机器人互相争斗的小游戏。我有一系列这些机器人的名称,但我不知道如何加载它们。它可能在代码中更清晰:

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();

2 个答案:

答案 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();
}