abstract public class Session implements Comparable {
……
private Course course;
protected Session(Course cousre, Date startDate) {
this.course = course;
this.startDate = startDate;
}
……
}
这是典型的类组合,细心的朋友能否发现其中的错误?
类型是逻辑错误,所以编译器不能自动发现,也不能提供有效的调试信息。
原因,敲键盘时容易发生的小失误。致使构造函数里的局部变量course->cousre,因此this.course=course语句没有起到应有的作用,即course对象没有初始化
导致结果:在某个匪夷所思的位置报java.lang.NullPointerException
特点,调试结果得出的是空指针异常,而且使用了this
解决方法:小孙可以称它为一个最佳实践了:D
1.如果使用了this,优先检查构造函数。
2.编程的时候尽可能的少用this,利用IDE的自动检查,可以在编译期发现这类错误。
阅读(1089) | 评论(0) | 转发(0) |