黑马程序员技术交流社区

标题: java反射的一个小问题 [打印本页]

作者: 花开~的季节    时间: 2012-3-9 14:56
标题: java反射的一个小问题
BufferedReader br=new BufferedReader(new FileReader("config.txt"));
                String line=br.readLine();
                System.out.println(line);
                Class clazz=Class.forName(line);//为什么我再读取配置文件的内容时,把line放在类加载中会报Exception in thread "main" java.lang.ClassNotFoundException:
               //但如果直接写路径就正常,别人的就行,为什么我的不行呢!!
                Constructor  construct=clazz.getConstructor(String.class,int.class);
                Person p=(Person)construct.newInstance("lisi",8);
                p.show();
作者: 马胜平    时间: 2012-3-9 15:00
在别人的计算机里line代表的类存在,可能在你的计算机里根本不存在,Cllass.forName参数必须是带完整的包名
作者: 花开~的季节    时间: 2012-3-9 15:35
马胜平 发表于 2012-3-9 15:00
在别人的计算机里line代表的类存在,可能在你的计算机里根本不存在,Cllass.forName参数必须是带完整的包名 ...

晕,line代表读出来的一个字符串
作者: 泮和顺    时间: 2012-3-9 15:53
Class clazz=Class.forName("java.lang.String");/1.配置文件里的也是这样的格式吗
实在不行删除掉那个配置文件再重新建个试试。
作者: 马胜平    时间: 2012-3-9 16:01
本帖最后由 马胜平 于 2012-3-9 16:03 编辑
花开~的季节 发表于 2012-3-9 15:35
晕,line代表读出来的一个字符串


我知道字符串,这个字符串是类的完整 名字,没有这个类当然出错Class.forName你以为随便传个字符串就行了啊
作者: H07000223    时间: 2012-3-9 16:03
config文件里面是不是拼写错误

我用java.lang.String试了下没问题啊,不行你把config内容拿出了亮亮,肯定是里面出错了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2