我们的 MySQL 数据库中有一个可为空(长型)列(名为 referral)。我们为 ORM 使用 hibernate 。
我正在尝试获取给定成员的列值。有些是空的,如果不是,它是一个指向另一个成员的 id,该成员是 referrer。
问题出在我试图检测该成员的列是否为空的 java 代码中,如果不是,则执行某些操作。
String referrerAffiliateId = Long.toString(member.getReferral());
if (referrerAffiliateId != null){
//do something
}
member.getReferral() 返回推荐列的值(long 类型)。其中一些列为空,一些则不是。
上面的代码可以正常编译,但是当我对推荐列为 null 的用户调用该方法时,我得到了一个 nullPointerException。
我该如何正确地对此进行检测?
提前致谢!
完整答案:
感谢@Marcelo 提供最佳正确答案。
这是最终状态的代码:
Long referrerAffiliateId = member.getReferral();
if (referrerAffiliateId != null) {
//...
}
最佳答案
假设 member.getReferral()
返回一个 Long
,使用:
if (member.getReferral() != null)
在 Hibernate 中,如果您希望能够检测属性中的可空性,则不得使用原始类型,因为它们始终具有默认值 0
多头。
关于java - 如何检测 long 类型是否真的为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8749186/