JAVA中怎么将新创建的对象名动态的添加到一个数组中

2024-12-28 22:29:20
推荐回答(2个)
回答1:

可以用反射来做,比如有个类叫Snake Class.forName("Snake").newInstance();这样可以获得该类实例,前提是有一个无参数构造函数来支持反射
有或者维护一个类名数组并根据一个创建器(工厂)来返回实例
比如classes = {"Snake","Fish"}
再写一个方法create(int classId){
switch(classId)
case 0: return new Snake();
case 1: return new Fish();
}

输入字符串BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s = in.readLine();
for(int i= 0,n=classes.length();i if(classes[i].equals(s)){
create(i);
}
}

仅仅提供一些参考希望对能给你启发

回答2:

String[] classNames = new String[] {"C1", "C2"};
Object[] results = new Object[classNames.length];
int i = 0;
for (String cn : classNames) {
Object o = Class.forName(cn).newInstance();
results[i++] = o;
}

手写的,不知道对不对,大概思路是这样的
Class.forName(cn).newInstance();