我必须根据if条件采取一些措施。说我有一个枚举“ VoucherType”
现在我有一个代码,根据条件执行:
private boolean verifyGiveAwayAccounting(GiveAwayMoneyVerificationEvent event) {
if(event.getVoucherType().equals(VoucherType.GIVE_AWAY_MONEY_ON_SIGNUP)){
someAction();
}
return verifySystemAccountTransaction(event);
}
如果事件的类型为“ GIVE_AWAY_MONEY_ON_SIGNUP”,我必须执行someAction()。但是我不必做任何其他事情,因为事件类型不是“ GIVE_AWAY_MONEY_ON_SIGNUP”。因此,当我调用此代码时,我将voucherType设置为“ GIVE_AWAY_MONEY_ON_SIGNUP”并执行someAction()。
但是对于任何其他类型的事件,由于没有设置凭证类型,因为我不想做任何特殊的事情,所以在if条件下会得到空指针异常。因此,为了避免nullPointerException,我将Voucher代码设置为虚拟对象(其他voucherType值),在任何情况下都不会使用。我有一种复杂的方法可以消除nullPointerException而不在事件中初始化VoucherType吗?
最佳答案
在对该对象的属性进行任何测试之前,应始终测试对象是否不为null。
if(enum != null && enum.Football) {
//some action
}