請只是我的好奇心,可以用來(code example see at line 38th(code edited))布爾(布爾)值切換
Boolean bol = true;
Boolean bol1 = !bol;
我的問題是
- 其應有的方式,或者是有(任何)可能不足,問題爲什麼要避免使用
- 是正確的結果是相同的布爾和布爾值
- 是否有另一種Java數據類型,其中可能切換表達式,邏輯l值
請只是我的好奇心,可以用來(code example see at line 38th(code edited))布爾(布爾)值切換
Boolean bol = true;
Boolean bol1 = !bol;
我的問題是
是的,這是正確的方法,它可以同時處理布爾和布爾值。
你的「另一種數據類型」可能是整數,用於存儲布爾值爲0和1,但我不知道誰會這樣做,如果我們有真正的布爾值。
在那裏,你可以使用這個:
int a = 1;
int negated = 1-a;
或更一般的,你可以通過'(a + 1)%n'遍歷一個'n'選項列表。 –
第二個指令將拋出一個NullPointerException如果bol
爲null。如果你確定布爾值不爲空,那麼沒問題。
是的,它可以。
布爾值可以包含第三個值「null」,布爾值只能包含true
或false
。
如果你有一個函數
public static void hi(boolean b) {...};
public static void main(String[] args){
Boolean b = null;
hi(b); // ... throws a NullPointerException at Runtime only
}
這就是所謂的自動裝箱,因爲Reflection
需要與包真正的類。
思考也有
Void (realy wired in real code)
Integer
Float
Enum (sometimes)
反射與布爾的存在有什麼關係?布爾值在反射之前。主要是因爲集合只存儲對象,並且因爲有時需要一個可空布爾值。 –
'boolean []'也是一個集合 - 在這裏沒有明確需要'Boolean',即使集合可以包含一個Container來僅存儲布爾值。但是你不能用'hi(int b)'中的'Boolean'來識別'hi'。 –
boolean []是一個數組。而布爾是隻存儲布爾值的標準容器。正如我所說,布爾從Java的一開始就存在,當時反射還沒有存在。 –
你到底想達到什麼目的?我不明白你在問什麼。 –
咦?問題在哪裏? – Oleksiy
在第58行沒有這樣的代碼。 – Eric