簡體   English   中英

Java:您能否像在C中那樣將null視為整數0?

[英]Java: Can you treat null like integer 0 like in C?

我想檢查一個對象的多少個字段為空。 我可以做類似的事情嗎?

int numNotNull = !!(obj.a) + !!(obj.b) + !!(obj.c) + !!(obj.d);

如果null是指向0地址的指針(如在C中),這將起作用。

為了更好地理解Java中的null ,請看一下這個答案 討論的重點是,除了作為引用null值的關鍵字之外,該值的類型也是無名類型'null':

還有一個特殊的null類型,即表達式null的類型,它沒有名稱。 由於空類型沒有名稱,因此無法聲明空類型的變量或將其強制轉換為空類型。 空引用是空類型表達式的唯一可能的值。 空引用始終可以轉換為任何引用類型。 在實踐中,程序員可以忽略null類型,而假裝null只是可以是任何引用類型的特殊文字。

因此,無法直接在數值計算中使用它-類型不匹配。

現在已經被接受的另一個答案解釋了null在Java中的含義。

但是,如果您最初的目標是在一個線性代碼中獲取空字段的計數,則可以通過以下方式進行操作:

int numNotNull = (((numNotNull = 0) == 0 && obj.a == null && ++numNotNull < 0) || (obj.b == null && ++numNotNull < 0) || (obj.c == null && ++numNotNull < 0) || (obj.d == null && ++numNotNull < 0)) ? 0 : numNotNull;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM