Groovy与Java语法差异

时间:2012-04-17 19:43:09

标签: java syntax groovy

在Java中,我可以这样做:

return a
    && b
    && c;

在Groovy中,它返回一个编译错误:unexpected token: &&。如果我在Groovy中省略return关键字,也会发生这种情况。但是,如果我将语句包装在括号中,它就可以正常工作。

在我读过的所有Groovy资源中,我被告知我应该能够在任何我想要的地方写“直接Java”。这是一个错误吗?如果没有,这个设计决定的原因是什么?

我查看了here,但未找到此问题。我知道有些东西不能从Java继承,但这似乎不是其中之一。

3 个答案:

答案 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;

来自the documentation

  

Groovy使用与Java类似的语法,尽管在Groovy分号中是可选的。

     

这节省了一点点打字,但也使代码看起来更清晰(令人惊讶的是这样一个小的改变)。所以通常如果每行都有一个语句你可以完全省略分号 - 尽管如果你愿意也可以使用它们。如果要在一行上放置多个语句,请使用分号分隔语句。

答案 2 :(得分:1)

你可以在groovy中做几乎所有的java,除非你看下面的内容。

http://groovy.codehaus.org/Differences+from+Java

如果你想直接使用java,那么你可以在* .java类中执行它并将其放到src文件夹中。