我一直认为 Java 中的原始类型不能null
,因为如果我尝试执行以下操作,则会出现编译时错误:
int test = null;
但是在三元运算中,似乎是允许的:
int test = something != 0 ? 5 : null;
三元运算不就是(在这种情况下)的缩写吗:
int test;
if (something != 0){
test = 5;
} else {
test = null
}
这当然不应该被允许。NullPointerException
如果该条件失败,由于自动装箱,它将自动抛出一个。那么为什么 java-compiler 不获取这样的废话呢?