88

ブール値がnullかどうかを確認するにはどうすればよいですか? したがって、「hideInNav」がnullであることがわかっている場合。それ以上の実行を停止するにはどうすればよいですか? 以下のようなものが機能していないようですが、なぜですか?

boolean hideInNav = parent.getProperties().get("hideInNav", false);
String hideNavigation = hideInNav != null ? hideInNav : "";
4

7 に答える 7

7

booleanはプリミティブ型であるため、null にすることはできません。

そのボックス化された型 はBoolean、null にすることができます。

関数はおそらく aBooleanではなくa を返すため、結果を-type 変数booleanに割り当てると、 null かどうかをテストできます。Boolean

于 2013-04-10T22:39:32.727 に答える
7

Java では、nullオブジェクト参照にのみ適用されます。はbooleanプリミティブ型であるため、代入できませんnull

あなたの例からコンテキストを取得するのは難しいですが、hideInNavによって返されるオブジェクトに が含まれていない場合getProperties()、指定した (デフォルト値?) は になると思いますfalse。これはあなたが見ているバグだと思います.falseは と等しくないnullのでhideNavigation、空の文字列を取得していますか?

コードサンプルにもう少しコンテキストを追加すると、より良い答えが得られる場合があります。

于 2013-04-10T22:40:04.890 に答える
4

null参照型に割り当てられる値です。nullは予約値であり、参照がオブジェクトのインスタンスに似ていないことを示します。

Abooleanはオブジェクトのインスタンスではありません。intやなどのプリミティブ型floatです。同じように:int xの値を0持ちboolean x、 の値を持ちますfalse

于 2013-04-10T22:39:11.333 に答える