java将空值分配给int
如果可能出现以下代码:
Integer a = null;
int b = a;
这是否意味着函数为整数返回一个可能的null
值是一种不好的做法
编辑1: 在这些答案中有几种不同的观点。我没有足够的信心选择其中一个
你可以在下面搜索框中键入要查询的问题!
如果可能出现以下代码:
Integer a = null;
int b = a;
这是否意味着函数为整数返回一个可能的null
值是一种不好的做法
编辑1: 在这些答案中有几种不同的观点。我没有足够的信心选择其中一个
# 1 楼答案
Java tenerary运算符的有趣之处是:(在OSX上使用8u151)
如果你这样做
这似乎很好,紧凑和所有,然后你得到一个npe!!!如果
是空的。所以我不得不把它分开,结果很好
# 2 楼答案
当您运行该代码时,它将给出一个
NullPointerException
。这基本上相当于:。。。这更清楚地表明它确实会失败
您并不是真正地为
int
分配空值-您正在尝试并且失败可以使用
null
作为Integer
的值;实际上Integer
经常被用来代替int
精确地作为“可空等价物”# 3 楼答案
这是不可能的。您将获得
NullPointerException
# 4 楼答案
当然,不能将null赋值给int。但是在某些情况下返回null是有意义的。Null表示未设置该值。一个典型的例子是DB列
# 5 楼答案
代码是可能的,但由于取消装箱,在运行时抛出一个
NullPointerException
。关于是的。当
int
足够时返回Integer
是无用且危险的(如您所见),因为对象可以为null,而原语不能为null。Integer
应该仅在需要时使用,如在参数化类型中-List<Integer>
# 6 楼答案
这将抛出NullPointerException
原因是您依赖于将整数值自动取消装箱到int基元类型。Java通过内部调用对象上的
.intValue()
来实现这一点,该对象为空至于这是不是一个好的做法。。。我建议不要这样做,除非代码只由您使用,而且您的行为非常好,请确保您只将此类方法的返回值分配给整数值,而不是int
如果您的代码最终出现在其他人使用的库中,这是不安全的,我更愿意显式地抛出一个异常,有很好的文档记录,并允许调用方进行防御性编码