黑马程序员技术交流社区

标题: 新手求传值问题 [打印本页]

作者: 月光海    时间: 2014-4-13 21:59
标题: 新手求传值问题
  1. import java.io.*;
  2. class MyLineReader
  3. {
  4. public static void main(String[] args)  throws IOException
  5.         {
  6.                 FileReader fr=new FileReader("d:\\xiaonan.txt");
  7.                 MiLineNumReader mr=new MiLineNumReader(fr);
  8.                 String s=null;
  9.                 while ((s=mr.myGetLineNum())!=null)
  10.                 {
  11.                         System.out.println(s);
  12.                 }
  13.                 fr.close();
  14.         }
  15. }
  16. class MiLineNumReader extends Reader
  17. {
  18.         private FileReader r;
  19.         int num=0;
  20.        
  21.         MiLineNumReader(FileReader r)
  22.         {
  23.                 super(r);
  24.                 this.r=r;
  25.         }
  26.         BufferedReader br=new BufferedReader(r);//在这一句抛出了空指针异常
  27.         public String myGetLineNum() throws IOException
  28.         {
  29. if(br.readLine()!=null)
  30.                 {
  31.                         return (num++)+br.readLine();
  32.                 }
  33.                 return null;
  34.         }
  35.         public void close()throws IOException
  36.         {
  37.                 r.close();
  38.         }
  39.         public int read(char[] cbuf, int off, int len) throws IOException
  40.         {
  41.                 return read(cbuf, off, len);
  42.         }
  43. }
复制代码
我的问题是,MiLineNumReader mr=new MiLineNumReader(fr);这一句我往构造函数里传递了参数,为什么却没有赋值成功,导致我
BufferedReader br=new BufferedReader(r);这句的r为null,抛出了空指针异常,求解

作者: 月光海    时间: 2014-4-13 22:09
  MiLineNumReader(FileReader r)
        {
                super(r);
                this.r=r;
        }
这句的super原来没加,我调试了一下,发下大括号其实根本就没进去,是什么情况呢
作者: 月光海    时间: 2014-4-13 23:21
没人懂?没人看?没人理?都睡了?




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