Java 正在检查基元数据类型是否为null

Java 正在检查基元数据类型是否为null,java,Java,我有double类型的原始变量名义: 私人双重概念; 现在我必须做一个null检查,如果它是null,则抛出一个Exception: if(item.getonnectional()==null){ 抛出新异常(“Rfgygf”); } 但这不是正确的方法,因为基元类型不能为null。请解释如何在Java中对概念性执行正确的null检查 有没有办法用withdouble实现这一点,或者我需要将其转换为double?当您说 private double notional; 它不是null,而

我有
double
类型的原始变量
名义

私人双重概念;
现在我必须做一个
null
检查,如果它是
null
,则抛出一个
Exception

if(item.getonnectional()==null){
抛出新异常(“Rfgygf”);
}
但这不是正确的方法,因为基元类型不能为
null
。请解释如何在Java中对
概念性
执行正确的
null
检查

有没有办法用with
double
实现这一点,或者我需要将其转换为
double

当您说

private double notional;
它不是
null
,而是
0.0d
。基本值不能为
null

说(部分)

基元类型的变量始终保持该基元类型的基元值

并且
null
不是原始值。解释可以在上面找到,上面写着(部分)

对于类型
double
,默认值为正零,即
0.0d


基元类型不能有空值。只有引用类型可以有空值。第一次声明double时,存储在其中的值是0。
基本上,double类型的对象将始终存储一个值。如果不指定该值,则该值将为0。

如其他答案所示,基本数据类型不能为null


我建议您将
可选的
类作为使用null表示无值的替代方法。Java 8包括
可选
,guava库中也有类似的版本。

诸如
double
int
等原始数据类型不能为空。它就像
int
不能是
1.1

这意味着,您不需要担心原始数据类型中的空值!它们是从不null,因此不会抛出
NullPointerException
s。我想你产生这种困惑的原因是你认为一个没有值的变量必须是空的。但这是错误的。考虑这个类:

public class MyClass { int i; }
现在创建类的一个对象:

MyClass obj = new MyClass();
现在您可以打印
obj.i
。会是什么?它不是空的,它是
0

所有基本数据类型都有一个默认值。例如,
int
的默认值是0,
double
的默认值是
0.0
,这解释了为什么上面的
obj.i
是0。
char
的默认值是什么?这是
“\0”


请记住,基本数据类型不能为
null
。从不

基元类型不能为空@HFKJFLHFJGDHDKD您可以设置一个“per say”
null
值,这样当它是一个特定值时,您就可以知道它的
null
。。。。像大多数常用的
-1
一样,但这并不意味着它只是空的saying@YeldarKurmangaliyev是的,但是现在有什么办法克服这个问题吗?所以,你有一个类型为
double
的字段。现在,您想检查它是否为null,但您知道它不能为null。这根本没有道理。你为什么要这样做?你说的“如果它是空的”是什么意思?