检查原始数据类型是否为null

时间:2015-11-17 04:23:09

标签: java

下面是原始数据类型名义,它是双重类型 如下图所示。

private double notional;

现在我必须进行一次空检查,以确定是否为null,并且必须抛出异常,如果它是null,我正在做

 if(item.getNotional() == null  )
                {
                    throw new Exception("Rfgygf");
                }

如上所示,这是不正确的方法,因为我无法检查原始类型进行空检查,请告知我如何检查java中的空检查的名义

现在有什么方法可以解决这个问题,我将它转换为Double type

4 个答案:

答案 0 :(得分:1)

doubleint等原始数据类型不能为空。这就像int不能是1.1

这意味着,您不必担心原始数据类型中的无效!它们从不 null,因此不会抛出NullPointerException。我猜你之所以有这种困惑的原因是你认为没有值的变量必须为空。但这是错误的。考虑这个课程:

public class MyClass { int i; }

现在你创建了一个类的对象:

MyClass obj = new MyClass();

现在打印obj.i。会是什么?它不是空的,它是0

所有原始数据类型都有默认值。例如,默认值int为0,默认值double0.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,番石榴库中也有类似的版本。