私はブールクラスのソースに次のように見た:私が正しく理解していればBoolean.FALSEまたは新しいブール値(false)?
public static final Boolean FALSE = new Boolean(false);
したがって、Boolean
クラスのフィールドFALSE
はfalse
にそのboolean
フィールドがセットされているBoolean
そのものです。
次の2つの文が本当に同等であるかどうかは疑問です。
Boolean myBool = new Boolean(false);
と
Boolean myBool = Boolean.FALSE;
後者の場合には、我々が実際に参照のコピーを作成するのに対し、私は、それを最初のケースでは、新しいBooleanオブジェクトが構築されていることを前提としてmyBool基準点でしょうBoolean.FALSEオブジェクトに - これは正しいですか?
もしそうなら、この相違点は本当にの意味ですか?
最後に、実際の質問:どちらのオプションを選択する必要がありますか?その理由は何ですか?
あなたは 'Boolean.FALSE'を使うべきです。これは、今後のJDKの更新に準拠しています。 –
また、 'Boolean.valueOf()'は一般的に 'new Boolean()'よりも優先されます。 – Keppil
どちらもありません。'false'を使ってコンパイラにautoboxingでソートさせます。 – EJP