Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java构建相互依赖的事件链_Java_Spring_Spring Boot - Fatal编程技术网

Java构建相互依赖的事件链

Java构建相互依赖的事件链,java,spring,spring-boot,Java,Spring,Spring Boot,我有一套类型为boolean的方法,它们都是设置。如果业务逻辑成功执行,则每个方法返回true,如果出现任何错误,则返回false。我想首先打破链条失败 有什么好的做法吗 我正在做这样的事情: if (taskIsDone(task) && taskGenerateReport(task) && taskReportIsDone(task) && taskProcessReport(task)){ log.info("Processing

我有一套类型为
boolean
的方法,它们都是设置。如果业务逻辑成功执行,则每个方法返回
true
,如果出现任何错误,则返回
false
。我想首先打破链条
失败

有什么好的做法吗

我正在做这样的事情:

if (taskIsDone(task) && taskGenerateReport(task) && taskReportIsDone(task) && taskProcessReport(task)){
    log.info("Processing of task {} is done", task.getName());
} else {
    log.error("Task {} finished with error", task.getName());
}
类似的东西在我的dev env中起作用,但若由于任何原因方法的顺序会改变逻辑,那个么这样的场景是无用的


有谁能给我一个提示,如何使它正确吗?

正如其他人所说,执行的顺序是从左到右


在您的情况下,我会调用
task.isDone()
task.generateReport()
等等,因为它与任务相关,在您的情况下,任务可能是一个域对象。

正如其他人所说,执行顺序是从左到右


在你的情况下,我会调用
task.isDone()
task.generateReport()
等等,因为它与任务相关,在你的情况下,任务可能是一个域对象。

我不理解你的问题。对该状况的评估已经短路。它到底行不行?你只是想要一种让它“看起来更好”或什么的方法?让它“看起来更好”是一种副作用,我想确定是否有任何可能,出于某种原因,
taskGenerateReport
条件会在
taskistone
之前进行评估。在我的开发中,它确实可以正常工作,但我希望在操作量显著增加时做好准备。在Java中使用此代码对
taskGenerateReport
进行评估之前,没有理由对
TaskIsOne
进行评估,除非您自己更改顺序。一个好的做法是使用状态机,没有那么多的布尔人,我不明白你的问题。对该状况的评估已经短路。它到底行不行?你只是想要一种让它“看起来更好”或什么的方法?让它“看起来更好”是一种副作用,我想确定是否有任何可能,出于某种原因,
taskGenerateReport
条件会在
taskistone
之前进行评估。在我的开发中,它确实可以正常工作,但我希望在操作量显著增加时做好准备。在Java中使用此代码对
taskGenerateReport
进行评估之前,没有理由对
TaskIsOne
进行评估,除非您自己更改顺序。一个好的做法是使用状态机,没有那么多的布尔人。