null
次のようなことをしようとすると、コンパイル時のエラーになるため、Java のプリミティブ型は にできないと常に考えていました。
int test = null;
ただし、三項演算では、許可されているようです。
int test = something != 0 ? 5 : null;
(この場合)の略である三項演算ではありません:
int test;
if (something != 0){
test = 5;
} else {
test = null
}
もちろん、これは許可されるべきではありません。その条件が失敗した場合、NullPointerException
オートボクシングにより自動的に がスローされます。では、なぜ java-compiler はこのようなナンセンスをフェッチしないのでしょうか?