null在java中到底是一種怎樣的存在

時間 2021-05-11 11:34:37

1樓:風中的雪糕

其實是各個型別都有它自己的null,

這個在資料庫實體get資料的時候最明顯,

比如你有個整數列設為integer,然後你的get方法強轉後也返回Integer,

基本就會報錯,因為返回的是Long型別,即使這個Long為null,返回依舊報錯。

而你自己寫返回null,返回的是你返回型別的那個null

2樓:Yunfei Lu

為null正名。

null可以表示未初始化的引用。為什麼不強迫初始化,因為初始化時可能拋異常。變數宣告放進try塊,又可能有跨作用域的需求。

一種常見的做法是大改語法引入maybe關鍵字支援代數型別,並且函式做模式匹配,否則難以完美處理這個問題。另外,每個處理meybe型別變數的函式,無非強制寫兩個分支分別處理nothing和just,本質就是強迫程式設計師分別處理null變數和已初始化變數,雖然好處是從文法上保證程式的正確性。但是實踐中識別null變數也可以留給程式檢查或者IDE外掛程式來實現,而大部分IDE也已經做到了。

null也可以用來表示空的返回值。同樣,呼叫者要處理null或non-null返回值。如果文件明確提醒使用者有可能會返回null值,實踐中是可行的,這也是慣例。

返回乙個maybe型別未嘗不可,但是在物件導向程式設計實踐中,這又增加了抽象的層次(比如協變的概念,假如要利用返回物件的虛函式),增加了開發者的腦力負擔。

所以說,null還是有好處的。尤其在IDE的幫助下,降低了開發的難度。

3樓:程墨Morgan

null天生就是乙個bug。

null的發明人Tony Hoare為此深深自責,參見這個 Tony Hoare - Wikipedia ,稱null是乙個「億萬美金的錯誤」。

佛法到底是一種解釋,還是一種追求?

護法居士 如來明證下四法故。何謂為四。一曰一切萬物皆歸無常。二曰一切諸有悉為苦毒。三曰一切諸法皆無有我。四曰一切有形悉至於空無。為泥洹寂。 不等式的證明 問這種問題,1還是對佛法沒有信心,2對佛法沒有深信,1是因為不了解,2是因為沒有觀察,沒有實踐,將佛法當做世間法,和自己對立起來了。右手指月聽說過...

前任到底是怎樣一種存在?

不渡 我覺得前任作為生命中的乙個過客你不一定要特別認真的去看待,他們可能是教會你道理的路人,誰還沒有過幾個前任,女孩們男孩們常常也會說,誰還沒有愛過幾個人渣,我談過兩次戀愛,每一次都印象很深刻 初戀談了整整四年半他比我大兩歲往往男孩子大女孩子兩歲在情商上沒有太大區別的 整個青春差不多都是他陪過來的,...

正骨到底是一種什麼體驗?

陳小綠 我前幾天看熱搜,小鬼不是去正骨了嗎?我感覺效G還不錯,而且整個人都變帥了,氣質超好。所以我也想去把我這個駝背給正一下。能聽到我骨頭響,駝背的地方,這樣它就繃緊了。現在按完了,我感覺渾身放鬆。就和推拿的原理差不多,不知道是不是心理作用,會不自覺的挺起來。可能是因為背挺直了,身高其實,也有一點點...