メソッドtest1()
と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);
}
}
前もって感謝します!