メンバー変数をnullに設定したいとします。プリミティブdoubleメンバー変数をnullに設定する
MyObject m = new MyObject();
m.setMyNumber(null);
コンパイルエラー:nullをdoubleに変換できません。
だから私はトリックを考えました。
MyObject m = new MyObject();
Double d = null;
m.setMyNumber(d);
少しハックを感じるが、コンパイラはエラーを投げなかった。
質問:m.getMyNumber()を呼び出すとどうなりますか。
コンパイルが可能ですが、そのコードを実行すると、プリミティブ変数をnullに設定できないため、NullPointerExceptionが発生します。 – khelwood
'Double'ラッパーオブジェクトを使う限り、' null'を返します。 –
あなたが私たちに語ったことに基づいてこの質問に答えることはできません。 2つ目の例の 'setMyNumber'行にランタイムエラーがあると思います。 –