黑马程序员技术交流社区
标题:
为什么报空指针异常?
[打印本页]
作者:
朝哥
时间:
2012-8-6 16:54
标题:
为什么报空指针异常?
import java.io.*;
public class MyLineNumberReader extends BufferedReader {
private Reader r;
private int count;
public MyLineNumberReader(Reader r){
super(r);
}
public String myReadLine() throws Exception{
count++;
return super.readLine();
}
public int getLineNumber(){
return count;
}
public void myClose() throws Exception{
r.close();
}
}
import java.io.FileReader;
import cn.itcast.text.MyLineNumberReader;
public class Test3 {
public static void main(String[] args) throws Exception {
FileReader fr = new FileReader("MyLineNumberReader.java");
MyLineNumberReader mr = new MyLineNumberReader(fr);
String line = null;
while ((line=mr.myReadLine())!=null) {
System.out.println(mr.getLineNumber() + ":" + line);
}
mr.myClose();
}
}
运行测试类报空指针异常,为什么?
作者:
王冰
时间:
2012-8-6 17:25
我试了下,将mr.myClose()改成如下就不报空指针异常了
try{
mr.myClose()
}
catch(Exception e){}
作者:
李知伦
时间:
2012-8-6 20:03
我是这样想的,错了莫怪,嘿嘿
Reader是抽象类,不能实例化
r.close();//用r作为对象对象调用close方法时候,指向为空
所以改成close();或者this.close();
PS.楼上的有点离谱....抓了异常当然就不报了....那不白写了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2