私は次のコードを書きました
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です。