我必须根据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
}

09-30 18:11