0

我正在制作一个小型(为了好玩)游戏,其中虚拟机器人互相战斗。我有一系列这些机器人的类名称,但我不知道如何加载它们。代码中可能更清楚:

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

2 回答 2

1

你需要Class.forName()方法来加载你的类,然后newInstance()方法来实例化它们。假设你有一个0-arg constructor: -

bots[i] = Class.forName(classes[i]).newInstance();

另请注意,这些类名必须是fully qualified名称。

于 2012-11-22T21:19:21.860 回答
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();
}
于 2012-11-22T21:21:27.930 回答