为什么每当三元运算符出现 else 情况时,java 都会尝试调用“java.lang.Integer.intValue()”?

问题描述 投票:0回答:0

因此,当我提供大于 4000 的种子时,它会按原样返回。

但是,当任何种子小于或等于 4000 时(即,当三元运算符条件计算为 false 时),该程序最终会出现空指针异常。

但是,如果在 getRankFromMain 参数中将种子声明为 Integer,则它可以正常工作。

public class TestSomething {
    private static Integer getRank() {
        return null;
    }

    private static Integer getRankFromMain(int seed) {
        return seed  > 4000 ? seed : getRank();
    }

    public static void main(String[] args) {

        Integer rank = getRankFromMain(1000);
        System.out.println(rank);
    }
}
java nullpointerexception integer boxing
© www.soinside.com 2019 - 2024. All rights reserved.