黑马程序员技术交流社区
标题:
Help。。。
[打印本页]
作者:
宋国涛
时间:
2011-9-21 10:48
标题:
Help。。。
先贴出代码:[code=java]public static void main(String []args){
try{
Class c = Class.forName(args[0]);
List list = (List)c.newInstance();
for(int i=0;i<5;i++){
list.add("element"+i);
}
for(Object o:list.toArray()){
System.out.println(o);
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch (InstantiationException e){
e.printStackTrace();
}catch(IllegalAccessException e){
e.printStackTrace();
}
}[/code]
说明:写这段程序的目的是使用Class 的 newInstance()方法来实例化一个对象,但是程序调试时出现一点小问题,试着捕获了异常,可能是ClassNotFound 异常,但是输入了参数,运行结果还是一样,是什么原因呢?非常感谢。。。
作者:
匿名
时间:
2011-9-21 12:39
newInstance()这个方法只能使用在无参构造方法中,看下你的构造方法吧,在检查下路径.
作者:
王清云
时间:
2011-9-21 13:24
纠正下,楼主原来的代码可以使用,应该是你的args[0]写错了,上溯造型是安全的,可以直接传入java.util.ArrayList:
try{
Class c = Class.forName(args[0]);
List list = (List)c.newInstance();
for(int i=0;i<5;i++){
list.add("element:"+i);
}
for(Object o:list){
System.out.println(o);
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch (InstantiationException e){
e.printStackTrace();
}catch(IllegalAccessException e){
e.printStackTrace();
}
[
本帖最后由 王清云 于 2011-09-21 21:54 编辑
]
作者:
匿名
时间:
2011-9-21 18:11
应该是你的含main方法的编译之后的文件,找不到你传入的类的class,
试着把你要传参数的类,打包放到,classpaht环境变量里,在给主方法传参数的时候,要传完整报名,类名
作者:
匿名
时间:
2011-9-21 21:43
我怎么感觉上边的人说的都不是楼主问题真正所在,以下是我的理解,
public static void main(String []args){
try{
[color=Red]//这里修改了你的源代码,问题就出在这里,肯定是你传入的args[0]参数有问题[/color] Class c = Class.forName("java.util.ArrayList");
List list = (List)c.newInstance();
for(int i=0;i<5;i++){
list.add("element"+i);
}
for(Object o:list.toArray()){
System.out.println(o);
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch (InstantiationException e){
e.printStackTrace();
}catch(IllegalAccessException e){
e.printStackTrace();
}
}
出现了异常的时候一定不要慌,仔细看下,其实问题都很小。
作者:
匿名
时间:
2011-9-23 09:18
[quote]我怎么感觉上边的人说的都不是楼主问题真正所在,以下是我的理解,
public static void main(String []args){
try{
//这里修改了你的源代码,问题就出在这里,肯定是你传入的args[0]参数有问题 Class c = Class.forName("java.util.ArrayList");
[/quote]
已经找到问题了,确实是参数没有传进去,非常感谢。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2