如何检查int是否为null

sha*_*Hwk 100 java int

我有一个叫做的对象Person.

它有几个属性;

int id;
String name;
Run Code Online (Sandbox Code Playgroud)

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

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

if (person == null){
}

Or


if(person.equals(null))
Run Code Online (Sandbox Code Playgroud)

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

if(person.getId()==null){} 
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*lex 166

An int不为null,0如果没有初始化则可能.

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

Integer id;
String name;

public Integer getId() { return id; }
Run Code Online (Sandbox Code Playgroud)

除了声明if(person.equals(null))不可能是真的,因为如果person为null,那么NullPointerException将抛出一个.所以正确的表达方式是if (person == null)


Per*_*ror 43

原语没有空值.int的默认值为0.

if(person.getId()==0){}
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

对象具有null作为默认值.

字符串(或任何对象)---> null

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

if (person == null){
}
Run Code Online (Sandbox Code Playgroud)

上面的代码检查人是否为空.你需要做的

if (person != null){ // checks if person is not null
}
Run Code Online (Sandbox Code Playgroud)

if(person.equals(null))
Run Code Online (Sandbox Code Playgroud)

当person为null时,上面的代码将抛出NullPointerException.


Zut*_*tty 13

基元int不能为空.如果您需要null,请Integer改用.