我有一个名为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并不允许它。我怎么做这个检查?
答案 0 :(得分:152)
int
不为空,如果未初始化,则可能为0
。
如果您希望整数能够为空,则需要使用Integer
而不是int
。
Integer id;
String name;
public Integer getId() { return id; }
除了语句if(person.equals(null))
不可能是真的,因为如果person
为空,那么将抛出NullPointerException
。所以正确的表达式是if (person == null)
答案 1 :(得分:41)
原语没有空值。 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是否为null。你需要做什么
if (person != null){ // checks if person is not null
}
和
if(person.equals(null))
当person为null时,上面的代码会抛出NullPointerException。
答案 2 :(得分:11)
原始int
不能为空。如果您需要null,请改用Integer
。
答案 3 :(得分:2)
1。)我需要检查对象是否为空;以下表达式是否正确;
if(person == null){ }
是即可。这是检查对象是否为null
的方法。
2。)我需要知道ID是否包含Int。
if(person.getId()== null){}
否由于id
被定义为原始int
,因此默认情况下会使用0
进行初始化,但永远不会是null
。如果原始类型为null,则无需检查它们。它们永远不会为空。如果需要,您可以将默认值0
与if(person.getId()==0){}
进行比较。
答案 4 :(得分:0)
您必须访问您的班级属性。
要访问它的属性,你必须这样做:
person.id
person.name
其中
人
是您的Person类的实例。
如果可以访问属性,可以这样做,如果没有,你必须使用setter和getters ......
答案 5 :(得分:0)
在Java中,原始数据类型没有Null值。 如果需要检查Null,请使用Integer Class而不是原始类型。您无需担心数据类型的差异。 Java将int基本类型数据转换为Integer。 当涉及内存时,整数要比整数占用更多的内存。但是内存分配的差异,没有什么可考虑的。
在这种情况下,您必须使用Inter而不是int
请尝试以下摘录,并查看示例以了解更多信息,
ng generate universal --client-project=YourApplicationName
`
Integer id;
String name;
//Refer this example
Integer val = 0;
`
您还可以如下分配Null,
if (val != null){
System.out.println("value is not null");
}
答案 6 :(得分:0)
在这种情况下,我会避免同时使用null
。
只需使用-1
作为空值
如果您需要-1
为可接受的值(非null),请改用float
。由于您所有的实际答案都是整数,因此请将您的空0.1
或者,找到一个x
永远不会出现的值,例如Integer.MAX_VALUE
之类的东西。
答案 7 :(得分:-2)
您可以使用
if (person == null || String.valueOf(person.getId() == null))
除了常规方法
person.getId() == 0