Java 如何检查int是否为null

Java 如何检查int是否为null,java,int,Java,Int,我有一个名为Person的对象 它有几个属性 int id; String name; 我设置了一个person对象,比如personp=newperson(1,“Joe”) 1.)我需要检查对象是否为空;下列表达是否正确 if (person == null){ } Or if(person.equals(null)) 2.)我需要知道ID是否包含Int if(person.getId()==null){} 但是,java不允许这样做。如何进行此检查?原语int不能为空。如果需要

我有一个名为
Person
的对象

它有几个属性

int id;
String name;
我设置了一个person对象,比如
personp=newperson(1,“Joe”)

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

if (person == null){
}

Or


if(person.equals(null))
2.)我需要知道ID是否包含Int

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

但是,java不允许这样做。如何进行此检查?

原语
int
不能为空。如果需要空值,请改用
Integer

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

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

Integer id;
String name;

public Integer getId() { return id; }

除了语句
if(person.equals(null))
不能为true之外,因为如果
person
为null,则将抛出
NullPointerException
。因此,如果(person==null)
原语没有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
对象的默认值为null

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

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

if (person == null){
}

Or


if(person.equals(null))
上面的代码检查person是否为null。你需要做什么

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


当person为null时,上述代码将抛出NullPointerException。

您必须访问类atributes

要访问it atributes,您必须执行以下操作:

person.id
person.name
在哪里

是您的类Person的一个实例

如果可以访问attibutes,则可以执行此操作,如果不能,则必须使用setter和getter

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

if (person == null){
}

Or


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

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

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

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

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

if (person == null || String.valueOf(person.getId() == null)) 
除了常规方法之外

person.getId() == 0

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

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

请尝试下面的代码片段,并查看示例以了解更多信息

Integer id;
String name;

//Refer this example
    Integer val = 0;
`

`

也可以按如下方式分配Null

val = null;

不仅仅是Java。基元类型在任何地方都不能为null。是的,
int
的默认值是
0
?@sharon。是的,是0。因此,您可以改为使用
0
进行检查。如果要执行空检查。使用整数包装器。使用整数来表示标识码并不总是一个好主意,因为您没有将它用作真数字——您不需要对它进行加减运算或其他数学运算。请考虑使用一个字符串。@罗希琴:我不是说,如果他想知道ID是“NULL”的话,我认为问某人=NUL是不正确的。由于id是一个int,他不能用你建议的方式提问…@sharonHwk“person==null”应该是更好的选择。如果person为null,它将不会有“equal”方法,然后“person.equals(null)”抛出。“int不是null,如果没有初始化,它可能是0。”这不是100%正确,作为局部变量的int不会被初始化。当然,因为局部变量不能被取消初始化,它是无效代码,Java不会允许它,正如其规范中声明的那样。