JAVA中怎么将新创建的对象名动态的添加到一个数组中 5
现需要将类名存储于一个数组中,将输入命令中的字符串与数组中类名比较后,new一个相应的对象出来最好给个实例哦...
现需要将类名存储于一个数组中,将输入命令中的字符串与数组中类名比较后,new一个相应的对象出来
最好给个实例哦 展开
最好给个实例哦 展开
2个回答
展开全部
可以用反射来做,比如有个类叫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);
}
}
仅仅提供一些参考希望对能给你启发
有或者维护一个类名数组并根据一个创建器(工厂)来返回实例
比如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);
}
}
仅仅提供一些参考希望对能给你启发
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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();
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();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询