强制在Groovy中使用显式的return语句,尤其是基于RxJava的代码?

我已经被Groovy中的隐式return语句烧坏了很多次,尤其是对于RxJava.是否存在将Groovy置于通过隐式return语句返回的任何值都将被忽略(不返回)的模式的声明或设置?

在Groovy中,当使用Reactive Extensions时,忘记返回Observable会导致难以调试的“僵尸”情况,在这种情况下,序列在看似很小的更改后就停止发出值.

另一个困难的调试情况是通过删除在显式返回语言中无害的语句,意外地在运算符闭包或必须返回可观察值的某种方法的末尾放置,现在由于无意间返回某种其他类型而创建的一个新的语句,该语句在前一个语句上遮挡了所需的Observable返回值,从而炸毁了Observable序列.

这不是废话.我已经浪费了很多时间来寻找仅在显式return语句返回值的情况下才不会发生的问题.我认为Groovy是一种强大的语言,我真的没有时间重写我在Java中工作的Groovy代码库来获得所需的东西.所以我希望有一个Groovy设置可以满足我的要求.

解决方法:

Is there a declaration or setting that will put Groovy in a mode
where any values returned via an implicit return statement will be
ignored (not returned)?

不,没有.您可以编写一个AST转换,以强加您喜欢的任何规则,并且可以使用诸如codenarc的静态分析工具来抱怨没有明确回报的非空方法,但是所问问题的答案是“否”.

上一篇:Java-需要将GitBlit groovy挂钩推送更改为其他Gitblit服务器回购


下一篇:如何在Java程序运行时启动Groovy控制台