亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 一種難以察覺(jué)的空指針異常 [打印本頁(yè)]

作者: tony_ayuan    時(shí)間: 2008-08-28 14:30
標(biāo)題: 一種難以察覺(jué)的空指針異常
abstract public class Session implements Comparable {
……
private Course course;

protected Session(Course cousre, Date startDate) {
         this.course = course;
  this.startDate = startDate;
}

……
}

這是典型的類組合,細(xì)心的朋友能否發(fā)現(xiàn)其中的錯(cuò)誤?

類型是邏輯錯(cuò)誤,所以編譯器不能自動(dòng)發(fā)現(xiàn),也不能提供有效的調(diào)試信息。

原因,敲鍵盤時(shí)容易發(fā)生的小失誤。致使構(gòu)造函數(shù)里的局部變量course->cousre,因此this.course=course語(yǔ)句沒(méi)有起到應(yīng)有的作用,即course對(duì)象沒(méi)有初始化

導(dǎo)致結(jié)果:在某個(gè)匪夷所思的位置報(bào)java.lang.NullPointerException

特點(diǎn),調(diào)試結(jié)果得出的是空指針異常,而且使用了this

解決方法:小孫可以稱它為一個(gè)最佳實(shí)踐了:D

1.如果使用了this,優(yōu)先檢查構(gòu)造函數(shù)。

2.編程的時(shí)候盡可能的少用this,利用IDE的自動(dòng)檢查,可以在編譯期發(fā)現(xiàn)這類錯(cuò)誤。





本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/20515/showart_1151036.html




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2