如何在(动作监听器)保存方法中为对象设置值?

时间:2018-07-20 21:25:21

标签: java nullpointerexception actionlistener

我下面有一个actionListener可以正常工作:

<p:commandButton actionListener="#{demandasController.saveNew}" ... />

saveNew方法是:

public void saveNew(ActionEvent event) {

    Situacao situacao = new Situacao();
    situacao.setIdSituacao(4);

    this.getSelected().setSituacao(situacao);

    super.saveNew(event);
}

如果我使用上面的代码,它就可以正常工作。但是,如果我尝试...

public void saveNew(ActionEvent event) {

Situacao situacao = new Situacao();

Date currentDate = new Date();

if (this.getSelected().getDtInicial().after(currentDate)) {
    situacao.setIdSituacao(4);
} else {
    situacao.setIdSituacao(5);
}

this.getSelected().setSituacao(situacao);

super.saveNew(event);
}

...它返回一个NullPointerException

有人知道为什么会这样吗?和/或我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:0)

从错误消息NullPointerException来看,从最初的代码有效但第二批代码无效,以下代码必须返回null。

this.getSelected().getDtInicial()

然后.after(currentDate)是对null的操作,它导致null指针。