1

鉴于此代码

final Double price = new Double(someString);
if(price != null <...>) {

我是否正确假设价格在这里永远不会为空?

4

4 回答 4

6

它可以抛出NumberFormatException,但永远不会null,因为您使用的是new关键字。

于 2013-05-15T07:43:58.763 回答
4

阅读规范:JLS 的第 15.9.4 节

类实例创建表达式的值是对指定类的新创建对象的引用。每次计算表达式时,都会创建一个新对象。

因此,构造函数永远不能返回 null。但是,java.lang.OutOfMemoryError可能会发生。

于 2013-05-15T07:44:57.063 回答
1

new永远不会导致null,是的。

于 2013-05-15T07:42:22.813 回答
1

是的,它永远不能为空。你为什么怀疑?

于 2013-05-15T07:44:22.583 回答