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 に答える