带条件运算符的可能Java错误

时间:2019-02-25 17:39:33

标签: java nullpointerexception conditional conditional-operator

以下代码由于某种原因失败,并出现NullPointerException,我不确定为什么:

import java.util.*;
public class MyClass {
    public static void main(String args[]) {
       Long x = null;
       Long test = (true) ? x : 0L; //Fails here with NullPointerException
    }
}

但是,如果我在条件运​​算中将x替换为null,它将起作用

import java.util.*;
public class MyClass {
    public static void main(String args[]) {
       Long x = null;
       Long test = (true) ? null : 0L; //WORKS - replaced x with null
    }

}

有人可以帮助我了解这里的情况吗?还是Java bug。

0 个答案:

没有答案