首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将null值赋给int

将null值赋给int
EN

Stack Overflow用户
提问于 2012-12-17 20:37:31
回答 7查看 56.3K关注 0票数 24

如果可以执行以下代码:

代码语言:javascript
复制
Integer a = null;
int b = a;

这是否意味着函数为整数返回可能的null值是一种糟糕的做法?

编辑1:在这些答案中有几种不同的观点。我没有足够的信心去选择其中的一个。

EN

回答 7

Stack Overflow用户

发布于 2012-12-17 20:38:51

这是不可能的。你会得到NullPointerException

票数 14
EN

Stack Overflow用户

发布于 2012-12-17 20:39:19

这将抛出一个NullPointerException。

这样做的原因是您依赖于Integer值到int原语类型的自动拆箱。Java通过在对象上内部调用.intValue()来实现这一点,它是null。

不管这是不是一种好的做法...我建议不要这样做,除非代码只由你使用,并且你表现得非常好,确保你只将这种方法的返回值赋给Integer值,而不是int。

如果您的代码以其他人使用的库结束,那么它是不安全的,我宁愿显式地抛出一个异常,并且有很好的文档记录,并允许调用者进行防御性编码。

票数 6
EN

Stack Overflow用户

发布于 2017-11-10 19:03:18

Java tenerary操作符的有趣之处?:(在OSX上使用8u151 )

如果你这样做了

代码语言:javascript
复制
Integer x = map == null ? 0 : map.get ( key );

它看起来很好很紧凑,然后你就会得到一个npe!如果

代码语言:javascript
复制
map.get ( key )

为null。所以我不得不把它分成两部分,它工作得很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13914317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档