使用方法test1()
and test2()
,我得到一个Type Mismatch Error: Cannot convert from null to int,这是正确的;但为什么我的方法不一样test3()
?在这种情况下,Java 如何以不同的方式评估条件表达式?(显然, aNullPointerException
会在运行时上升)。它是一个丢失的错误吗?
public class Test {
public int test1(int param) {
return null;
}
public int test2(int param) {
if (param > 0)
return param;
return null;
}
public int test3(int param) {
return (param > 0 ? param : null);
}
}
提前致谢!