可能重复:
Java 中棘手的三元运算符 - 自动装箱
我们知道int roomCode = null;
编译器不允许这样做。
那么为什么代码 1 没有给出编译器错误,而代码 2 给出了。
代码 1:
int roomCode = (childCount == 0) ? 100 : null;
代码 2:
int roomCode = 0;
if(childCount == 0) roomCode = 100;
else roomCode = null; // Type mismatch: cannot convert from null to int