下面是原始数据类型名义,它是双重类型 如下图所示。
private double notional;
现在我必须进行一次空检查,以确定是否为null,并且必须抛出异常,如果它是null,我正在做
if(item.getNotional() == null )
{
throw new Exception("Rfgygf");
}
如上所示,这是不正确的方法,因为我无法检查原始类型进行空检查,请告知我如何检查java中的空检查的名义
现在有什么方法可以解决这个问题,我将它转换为Double type
答案 0 :(得分:1)
double
和int
等原始数据类型不能为空。这就像int
不能是1.1
。
这意味着,您不必担心原始数据类型中的无效!它们从不 null,因此不会抛出NullPointerException
。我猜你之所以有这种困惑的原因是你认为没有值的变量必须为空。但这是错误的。考虑这个课程:
public class MyClass { int i; }
现在你创建了一个类的对象:
MyClass obj = new MyClass();
现在打印obj.i
。会是什么?它不是空的,它是0
!
所有原始数据类型都有默认值。例如,默认值int
为0,默认值double
为0.0
,这解释了上述obj.i
为0的原因。 char
?这是'\0'
!
请记住原始数据类型不能是null
。
答案 1 :(得分:0)
当你说
时private double notional;
不是null
,而是0.0d
。原始值不能是null
。
JLS-4.12.1. Variables of Primitive Type说(部分)
基本类型的变量始终包含该精确基元类型的原始值。
并且null
不是原始值。可以在JLS-4.12.5. Initial Values of Variables找到解释,其中(部分)
对于类型
double
,默认值为正零,即0.0d
。
答案 2 :(得分:0)
基本类型不能具有空值。只有引用类型可以具有空值。当您第一次声明double时,存储在其中的值为0。 基本上,double类型的对象将始终存储一个值。如果您没有指定该值是什么,则它将为0。
答案 3 :(得分:0)
正如其他答案所示,原始数据类型不能为空。
我建议您查看Optional
类作为使用空值来表示无值的替代方法。 Java 8包含Optional
,番石榴库中也有类似的版本。