133

我有一个名为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 不允许。我该怎么做这个检查?

4

7 回答 7

217

An不为空,如果未初始化int,则可能为空。0

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

Integer id;
String name;

public Integer getId() { return id; }

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

于 2012-12-06T16:18:31.503 回答
53

原语没有空值。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){
}

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

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

if(person.equals(null))

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

于 2012-12-06T16:18:52.707 回答
17

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

于 2012-12-06T16:18:23.223 回答
3

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

如果(人==空){}

的。这是您检查对象是否为null.

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

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

NO因为id被定义为原始int的,它将被默认初始化,0并且永远不会null。如果原始类型为空,则无需检查它们。它们永远不会为空。如果需要,您可以将默认值0if(person.getId()==0){}.

于 2012-12-06T16:26:09.180 回答
0

您必须访问您的类属性。

要访问它的属性,您必须执行以下操作:

person.id
person.name

在哪里

是你的类 Person 的一个实例。

如果可以访问属性,则可以这样做,如果不能,则必须使用 setter 和 getter...

于 2012-12-06T16:19:38.053 回答
0

在 Java 中,原始数据类型没有 Null 值。如果您需要检查 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;
于 2019-09-24T11:23:23.700 回答
-1

您可以使用

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

除了常规方法

person.getId() == 0
于 2015-12-14T16:27:54.067 回答