如何检查一个int是否为null

新手上路,请多包涵

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

原文由 Sharon Watinsan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 846
2 个回答

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

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

 Integer id;
String name;

public Integer getId() { return id; }

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

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

基元没有空值。 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。

原文由 PermGenError 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题