繁体   English   中英

为什么java允许NPE

[英]Why does java allow NPE

为什么javac不会在此代码上发出错误?

private static int compute(int v) {
    return v == 0 ? null : v;
}

当然, compute(0)将抛出NullPointerException 我希望java编译器通过做一些基本的静态代码分析来防止这种情况,就像它会阻止它一样

private static int compute(int v) {
    if (v == 0)
        return null;
    else
        return v;
}

为什么java允许NPE?

指示异常情况(并允许程序员可能恢复 )。

在您的示例中,Java允许自动装箱拆箱 nullint设置为Integer (然后将其拆箱int )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM