A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘印12 中级黑马   /  2013-4-4 19:42  /  2200 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘印12 于 2013-4-4 21:44 编辑

import java.io.File;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class PropsUities {
private Properties props;
public PropsUities(String src){//创建打开Properties配置文件的方法
  props=new Properties();
  InputStream in=null;
  try {
   in=new FileInputStream( src);
   props.load(in);
  } catch (Exception e) {
   e.printStackTrace();
  }
  finally{
   try {
    in.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
  }
}
public Object getBean(String ClazzName)throws Exception{//通过获取键的名字获取该类名并创建该类的实例对象
  Object obj=Class.forName(props.getProperty(ClazzName)).newInstance();
  return obj;
}
public static  void main(String[] args)throws Exception{
  DemoClass dc=(DemoClass)new  PropsUities("D:\\clazz.properties").getBean("ClazzName");
  dc.run();
}


}
class DemoClass {
public void run() {
  System.out.println("welcome to heima!");
}
}


我的配置文件放在了d盘下 命名为clazz.prorerties       内部内容为clazzName=DemoClass    以下是报错内容


Exception in thread "main" java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at com.itheima.PropsUities.getBean(PropsUities.java:44)
at com.itheima.PropsUities.main(PropsUities.java:49)


请问我到底是哪里错了呢

4 个回复

倒序浏览
提示是JAVA lang包里的空指针异常  NullPointerException

另外还有就是你的主方法编程有误.
回复 使用道具 举报
程序在我电脑上测试无误,输出:
        C:\Users\Jack>java PropsUities
        welcome to heima!
因此初步判断:是clazz.properties文件出问题
           请查看:1,clazz.properties文件所在地为:   "D:\\clazz.properties"
                         2,clazz.properties文件中的内容为:ClazzName=DemoClass

我添加的文件为我所建的clazz.properties文件,你解压到D盘试试

clazz.rar

99 Bytes, 下载次数: 104

回复 使用道具 举报
你的JDK版本过低了,要1.6以上的。
回复 使用道具 举报
谢谢!我换了一个简单的代码重新编程!不过还是谢谢你了!以后有不懂的地方还请你多费费心
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马