在Java中,我可以这样做:
return a
&& b
&& c;
在Groovy中,它返回一个编译错误:unexpected token: &&
。如果我在Groovy中省略return
关键字,也会发生这种情况。但是,如果我将语句包装在括号中,它就可以正常工作。
在我读过的所有Groovy资源中,我被告知我应该能够在任何我想要的地方写“直接Java”。这是一个错误吗?如果没有,这个设计决定的原因是什么?
我查看了here,但未找到此问题。我知道有些东西不能从Java继承,但这似乎不是其中之一。
答案 0 :(得分:22)
问题是Groovy不需要显式行终止符 - return a
本身看起来像一个有效的语句。你可以使用:
return a &&
b &&
c;
或使用续行:
return a \
&& b \
&& c;
不是的,所有Java都是有效的Groovy。虽然涵盖了大多数Java语法,但有时Groovy的一个功能会对有效的Java产生影响。
答案 1 :(得分:8)
Groovy似乎不需要分号,所以我认为你的代码被解释为:
return a;
&& b;
&& c;
Groovy使用与Java类似的语法,尽管在Groovy分号中是可选的。
这节省了一点点打字,但也使代码看起来更清晰(令人惊讶的是这样一个小的改变)。所以通常如果每行都有一个语句你可以完全省略分号 - 尽管如果你愿意也可以使用它们。如果要在一行上放置多个语句,请使用分号分隔语句。
答案 2 :(得分:1)
你可以在groovy中做几乎所有的java,除非你看下面的内容。
http://groovy.codehaus.org/Differences+from+Java
如果你想直接使用java,那么你可以在* .java类中执行它并将其放到src文件夹中。