如何檢查布爾值是否爲空?所以如果我知道「hideInNav」爲空。如何停止 它進一步執行?像下面的東西似乎不工作,但爲什麼?Java檢查布爾值是否爲空
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
如何檢查布爾值是否爲空?所以如果我知道「hideInNav」爲空。如何停止 它進一步執行?像下面的東西似乎不工作,但爲什麼?Java檢查布爾值是否爲空
boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
boolean
只能是true
或false
,因爲它是一個primitive datatype(+一boolean
變量的默認值是false
)。如果您想使用null
值,則可以使用類Boolean
。布爾值是一個引用類型,這就是您可以將null
分配給布爾「變量」的原因。例如:
Boolean testvar = null;
if (testvar == null) { ...}
甲boolean
不能在Java null
。
A Boolean
,但是,可以是null
。
如果一個boolean
沒有賦值(比如說一個類的成員),那麼默認情況下它將是false
。
null
是分配給參考類型的值。 null
是保留值,表示引用不像對象的實例。
A boolean
不是對象的實例。它是一種原始類型,如int
和float
。以相同的方式:int x
的值爲0
,boolean x
的值爲false
。
同意。不是拼寫錯誤的最佳時機!快速編輯:) – christopher 2013-04-11 09:29:52
boolean
是原始類型,因此不能爲空。
其盒裝類型Boolean
可以爲空。
函數可能會返回Boolean
而不是boolean
,因此將結果分配給Boolean
類型的變量將允許您測試無效性。
在Java中,null
僅適用於對象引用;由於boolean
是原始類型,因此不能分配null
。
很難從你的例子獲取上下文,但我猜,如果hideInNav
不是由getProperties()
,返回的對象(默認值?)你已經表示將false
。我懷疑這是你看到的錯誤,因爲false
不等於null
,所以hideNavigation
得到空字符串?
對於代碼示例,您可能會得到一些更好的答案。
唯一可以是null
的東西是非原始的。
A boolean
哪些只能容納TRUE
或FALSE
是原始的。在存儲器中的TRUE
/FALSE
實際上是數字(0
和1
)
0 = FALSE
1 = TRUE
因此,當你實例化對象將是空 String str; // will equal null
另一方面,如果你立即一個原語它將被分配到0默認。
boolean isTrue; // will be 0
int i; // will be 0
「布爾」中的布爾值的大寫字母「......」是不幸的。 'boolean'類型的變量只能保存'true'和'false',但是一個'Boolean'類型的變量保存一個'Boolean'對象或'null'。 – 2013-06-24 17:09:59
其實原始數據類型的默認值是空的局部變量。
對不起,但這是不正確的。原始數據類型始終具有非空值。 – Eich 2015-08-10 10:27:31
默認值是'false',不管它是否是本地的,都與任何事情無關。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – 2017-03-11 14:35:49
感謝@Eich但如果我想使用空值,您將如何使用類「布爾」?你有任何代碼示例?對不起,超新的這個。 – 2013-04-10 22:39:46
在這個具體的例子中,布爾hideInNav = parent.get ..... – p91paul 2013-04-10 22:42:26
沒問題Delmon,每個人都是初學者:)。 p91paul爲您提供了正確的代碼,以便您可以檢查空值:)。我還添加了一個例子。 – Eich 2013-04-10 22:45:02