不能';无法在groovyc中编译Java代码

不能';无法在groovyc中编译Java代码,java,groovy,Java,Groovy,嗨,我有一组java类,当我用javac命令编译它们时,它们工作得非常好: javac -g -nowarn -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 我在同一台机器上安装了groovy,并尝试执行以下操作: groovyc -classpath /usr/class/cs143/cool/lib:.:/usr/jav

嗨,我有一组java类,当我用
javac
命令编译它们时,它们工作得非常好:

javac -g -nowarn -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 
我在同一台机器上安装了groovy,并尝试执行以下操作:

groovyc  -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 
groovy似乎无法理解java文件及其抛出错误,如:

ASTParser.java: 21: unexpected token: protected @ line 21, column 3.
     protected static final short _production_table[][] = 
 ^
我有点困惑。是否所有java程序都是有效的groovy代码?只有维切维萨不是真的,对吗

我在哪里犯了错误


提前谢谢。

有一些怪癖。以前内部类存在一些问题(现在可能在2.x中得到解决),您可能需要注意字符串文本中的内容(例如,零散的美元符号)。将文本用于数组定义可能是一个问题(例如,
int[]ari={};
在groovy中不起作用)。此外,虽然不经常出现,但其本身使用的范围括号会混淆groovy

在您的特定情况下,只需将
short\u production\u表[]][]
更改为
short[][].\u production\u表
。我相信这会解决你的问题


顺便说一句,还有一些“怪癖”。

有一些怪癖。以前内部类存在一些问题(现在可能在2.x中得到解决),您可能需要注意字符串文本中的内容(例如,零散的美元符号)。将文本用于数组定义可能是一个问题(例如,
int[]ari={};
在groovy中不起作用)。此外,虽然不经常出现,但其本身使用的范围括号会混淆groovy

在您的特定情况下,只需将
short\u production\u表[]][]
更改为
short[][].\u production\u表
。我相信这会解决你的问题


顺便说一句,还有一些“问题”。

+1:2.x中仍然存在这个问题,但移动type关键字将解决这个问题。谢谢你的回答。还有哪些页面提到了Groovy和java之间的核心区别?如果你查看答案中的链接,在底部有一个非常简洁的差异列表(虽然不是详尽的)。+1:2.x中仍然存在这个问题,但是移动type关键字可以解决这个问题。谢谢你的回答是正确的。有没有哪一页提到了Groovy和java之间的核心区别?如果您查看答案中的链接,底部有一个非常简洁的差异列表(虽然不是详尽的)。