私は次のコードを書きました
Boolean isit;
if(isit== true) {
System.out.println("isit is true");
} else {
System.out.println("isit is not false");
}
しかし、それは常にnullですが、default
..としてfalseを与える必要があります.
Boolean
(大文字に注意してください)として宣言すると、それはオブジェクトであるためnull
、デフォルトで.
boolean
ではなくにするつもりだったと思いますBoolean
。
さらに、 aboolean
を使用すると、次のことができます。
boolean isit;
if (isit) {
System.out.println("isit is true");
} else {
System.out.println("isit is false");
}
//prints "isit is false"
boolean
との 2 つの状態を持つプリミティブとはtrue
異なり、false
ラッパーBoolean
には の 3 つ目の状態が追加されていnull
ます。Boolean
オブジェクトがであるときnull
、それはどちらtrue
でもありませんfalse
。
オブジェクトが と等しいかどうかを比較するとtrue
、値は としてラップされBoolean
、 と比較されnull
ます。結果はfalse
です。と比較すると同じことが起こりますがfalse
、以下のコードは何も出力しません。
Boolean isit = null;
if (isit == true) { // true gets converted to Boolean.TRUE
System.out.println("isit is true")
}
if (isit == false) { // false gets converted to Boolean.FALSE
System.out.println("isit is false")
}
フラグに 3 つの状態 ( true
、false
、および「未設定」) が必要な場合はBoolean
、 ;を使用する必要があります。2 つの状態 (true
とfalse
) だけが必要な場合は、 のプリミティブ データ型を使用する必要がありますboolean
。
ラッパー クラスを使用している場合は、object
それを値に初期化することを忘れないでくださいdefault
。デフォルトでは、すべてのwrapper class
オブジェクトが null に初期化されます。
のように初期化する必要があります
Boolean B = Boolean.TRUE;
Boolean B = true;
またはプリミティブ値を取る
boolean isit; ///default false
この場合、isit-variable の値を true/false のいずれかに初期化する必要があります。そうしないと、コンパイラがコードをコンパイルできなくなります。値を与えずに IF で isit-variable を使用しているためです。Java では、変数を使用する前に初期化する必要があります。
Boolean はラッパー クラス オブジェクトです。そしてJava規約としてobject's default value is always null
。小文字の b でブール値を使用した場合、それはプリミティブとして呼び出され、デフォルトで値であることを理解しているとおりの値false
です。