3 回答

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
NullPointerException
s是當(dāng)您嘗試使用指向內(nèi)存中沒有位置的引用(null)時(shí)發(fā)生的異常,就好像它引用了一個(gè)對(duì)象一樣。在空引用上調(diào)用方法或嘗試訪問(wèn)空引用的字段將觸發(fā)a NullPointerException
。這些是最常見的,但NullPointerException
javadoc頁(yè)面上列出了其他方式。
可能是我能想出的最快的示例代碼來(lái)說(shuō)明NullPointerException
:
public class Example { public static void main(String[] args) { Object obj = null; obj.hashCode(); }}
在內(nèi)線的第一行main
,我明確地將Object
引用設(shè)置為obj
等于null
。這意味著我有一個(gè)引用,但它沒有指向任何對(duì)象。之后,我嘗試將引用視為通過(guò)調(diào)用其上的方法指向?qū)ο?。這導(dǎo)致a NullPointerException
因?yàn)闆]有代碼在引用指向的位置執(zhí)行。
(這是一個(gè)技術(shù)性問(wèn)題,但我認(rèn)為值得一提的是:指向null的引用與指向無(wú)效內(nèi)存位置的C指針不同??罩羔槍?shí)際上并不指向任何位置,這與指向恰好無(wú)效的位置。)
添加回答
舉報(bào)