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

现需要将类名存储于一个数组中,将输入命令中的字符串与数组中类名比较后,new一个相应的对象出来最好给个实例哦... 现需要将类名存储于一个数组中,将输入命令中的字符串与数组中类名比较后,new一个相应的对象出来
最好给个实例哦
展开
 我来答
manyfaces
2010-05-21 · TA获得超过1068个赞
知道小有建树答主
回答量:1808
采纳率:0%
帮助的人:980万
展开全部
可以用反射来做,比如有个类叫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<n;i++){
if(classes[i].equals(s)){
create(i);
}
}

仅仅提供一些参考希望对能给你启发
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
goshimo
2010-05-21 · TA获得超过524个赞
知道小有建树答主
回答量:883
采纳率:0%
帮助的人:451万
展开全部
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();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式