如何检查 int 是否为 null

我有一个物体叫 Person

它有几个属性;

int id;
String name;

我设置了一个像 Person p = new Person(1,"Joe");这样的人物对象。

1)我需要检查对象是否为空; 下面的表达式是否正确;

if (person == null){
}


Or




if(person.equals(null))

2)我需要知道 ID 是否包含 Int。

if(person.getId()==null){}

但是 java 不允许,我怎么做这个检查?

608855 次浏览

原语 int不能为 null。如果需要 null,则使用 Integer

int不是空的,如果没有初始化,它可能是 0

如果希望整数能够为空,则需要使用 Integer而不是 int

Integer id;
String name;


public Integer getId() { return id; }

此外,语句 if(person.equals(null))不能为 true,因为如果 person为 null,那么将抛出 NullPointerException。所以正确的表达式是 if (person == null)

原语没有空值,默认值是0。

if(person.getId()==0){}

Java 中原语的默认值:

Data Type   Default Value (for fields)


byte                0
short               0
int                 0
long            0L
float           0.0f
double          0.0d
char            '\u0000'
boolean         false

对象的默认值为 null。

String (或任何对象)—— > null

1)我需要检查对象是否为空; 下面的表达式是否正确;

if (person == null){
}

以上代码检查 person 是否为 null

if (person != null){ // checks if person is not null
}

还有

if(person.equals(null))

当 person 为 null 时,上面的代码将引发 NullPointerException。

您必须访问您的类属性。

要访问它的属性,你必须做到:

person.id
person.name

哪里

是您的类 Person 的实例。

如果可以访问属性,就可以做到这一点,如果不能,则必须使用 setter 和 getter..。

1)我需要检查对象是否为空; 下面的表达式是否正确;

如果(人 = = 空){ }

这是检查对象是否为 null的方法。

2)我需要知道 ID 是否包含 Int。

如果(person. getId () = = null){}

NO 由于 id被定义为基元 int,它将被默认初始化为 0,而且它永远不会是 null。如果基元类型为 null,则不需要检查它们。它们永远不会是无效的。如果需要,可以将默认值 0if(person.getId()==0){}进行比较。

你可以用

if (person == null || String.valueOf(person.getId() == null))

除了常规接近

person.getId() == 0

在 Java 中,基本数据类型没有空值。 如果需要选中 Null,请使用 Integer Class 而不是基元类型。您不必担心数据类型的差异。Java 将 int 基元类型数据转换为 Integer。 当涉及到内存时,Integer 比 int 占用更多的内存。但内存分配的不同,没有什么可考虑的。

在这种情况下,必须使用 Inter 而不是 int

尝试下面的代码片段,并看到更多信息的例子,

Integer id;
String name;


//Refer this example
Integer val = 0;

`

if (val != null){
System.out.println("value is not null");
}

`

也可以按照下面的方式分配 Null,

val = null;

编译器不允许将 int 的值赋值给 null,它不会运行。 所以我们可以说,这个问题已经部分解决了。