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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 tacyjay在路上 于 2014-5-20 08:52 编辑

张孝祥老师第28个视频中,按老师的步骤敲得,出现空指针异常,找不出原因,求大神。
问题见代码。
  1. import java.io.FileInputStream;
  2. import java.io.InputStream;
  3. import java.util.ArrayList;
  4. import java.util.Collection;
  5. import java.util.HashSet;
  6. import java.util.Properties;

  7. public class ReflectTest2 {
  8.         public static void main(String[] args)throws Exception {
  9.                
  10.                 InputStream ips = ReflectTest2.class.getClass().getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
  11.                 //这里为什么报NullPointerException???
  12.                                 
  13.                 Properties props = new Properties();
  14.                 props.load(ips);
  15.                 ips.close();
  16.                 String className = props.getProperty("className");
  17.                 Collection collections =(Collection) Class.forName(className).newInstance();               
  18.                
  19.                 ReflectPoint pt1 = new ReflectPoint(3,3);
  20.                 ReflectPoint pt2 = new ReflectPoint(5,5);
  21.                 ReflectPoint pt3 = new ReflectPoint(3,3);
  22.                 collections.add(pt1);
  23.                 collections.add(pt2);
  24.                 collections.add(pt3);
  25.                 collections.add(pt1);
  26.                 System.out.println(collections.size());
  27.         }        
  28. }
  29. class ReflectPoint {
  30.         private int x;
  31.         public int y;
  32.         public int getX() {
  33.                 return x;
  34.         }
  35.         public void setX(int x) {
  36.                 this.x = x;
  37.         }
  38.         public int getY() {
  39.                 return y;
  40.         }
  41.         public void setY(int y) {
  42.                 this.y = y;
  43.         }
  44.         public ReflectPoint(int x, int y) {
  45.                 super();
  46.                 this.x = x;
  47.                 this.y = y;
  48.         }               
  49. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

2 个回复

倒序浏览
  1. ReflectTest2.class.getClass().getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
复制代码
改成
  1. ReflectTest2.class.getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
复制代码

你已经获得了这个类的字节码文件对象为什么还要再次获取,再获取类加载器可就不是加载那个类的类加载器了,就是BootStrapt那个了,那个就是null,没有getRes...获取流的方法

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
月光海 发表于 2014-5-19 17:42
改成
你已经获得了这个类的字节码文件对象为什么还要再次获取,再获取类加载器可就不是加载那个类的类加载 ...

额。。。。是的。。多写了。。。谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马