相关疑难解决方法(0)

为什么我可以在三元操作中将原始类型设置为null

我一直以为Java中的原始类型不可能null,因为如果我尝试这样做,这是一个编译时错误:

int test = null;
Run Code Online (Sandbox Code Playgroud)

但是在三元操作中,似乎允许:

int test = something != 0 ? 5 : null;
Run Code Online (Sandbox Code Playgroud)

不是三元操作(在这种情况下):

int test;
if (something != 0){
    test = 5;
} else {
    test = null
}
Run Code Online (Sandbox Code Playgroud)

这当然不应该被允许.如果该条件失败,它将自动抛出一个NullPointerException由于自动装箱.那么为什么java编译器不会像这样获取废话呢?

java null ternary-operator raw-types

12
推荐指数
1
解决办法
983
查看次数

标签 统计

java ×1

null ×1

raw-types ×1

ternary-operator ×1