考虑这个课程:
package be.duo.test;
public class Main {
public static void main(String[] args) {
Main main = new Main();
main.execute();
}
private void execute() {
for(int i = 0; i < 10; i++) {
System.out.println("" + method());
}
}
private int method() {
return (Math.random() > 0.5d) ? 1 : null;
}
}
method()的返回类型为int,它是一种基本类型.
考虑return语句中使用的三元运算符:
>它使用Java 8默认编译器进行编译,但这会在运行时导致NullPointerException,为什么?
>使用Maven,这将导致编译时错误
[ERROR] error: incompatible types: bad type in conditional expression
[ERROR] cannot be converted to int
有人可以向我解释为什么它表现不同吗?