如何检查int是否为空

我有一个叫Person的对象。

它有几个属性;

 int id; String name; 

我设置了一个Person p = new Person(1,"Joe");对象,如Person p = new Person(1,"Joe");

1)我需要检查对象是否为空; 下列expression是否正确;

 if (person == null){ } Or if(person.equals(null)) 

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

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

但是,Java不允许它。 我怎样才能做这个检查?

int不为null,如果未初始化,则可能为0

如果你想要一个整数能够为null,你需要使用Integer而不是int

 Integer id; String name; public Integer getId() { return id; } 

除了声明if(person.equals(null))不能为真,因为如果person为null,则会抛出一个NullPointerExceptionexception。 所以正确的expression式是if (person == null)

基元不具有空值。 默认的int为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 

对象具有空值作为默认值。

string(或任何对象)—> null

1)我需要检查对象是否为空; 下列expression是否正确;

 if (person == null){ } 

上面这段代码检查是否为空。 你需要做的

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

 if(person.equals(null)) 

当person为null时,上面的代码会抛出NullPointerException。

原始的int不能为null。 如果您需要null,请使用Integer

1)我需要检查对象是否为空; 下列expression是否正确;

if(person == null){}

是的 。 这是如何检查对象是否为null

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

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

NO由于id被定义为基本int ,所以它将被默认初始化为0并且它永远不会为null 。 如果它们为空,则不需要检查原始types。 他们永远不会是空的。 如果你愿意,你可以比较默认值0if(person.getId()==0){}

你必须访问你的类的属性。

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

 person.id person.name 

哪里

是你的类Person的一个实例。

如果属性可以被访问,则可以这样做,如果不属于,则必须使用setter和getters。

您可以使用

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

除了定期的方法

 person.getId() == 0