【发布时间】:2014-11-26 22:20:29
【问题描述】:
我对 Groovy 中的特征感到非常兴奋,但我无法让它们通过联合编译来工作。示例:
Bird.groovy:
trait FlyingAbility {
String fly() { "I'm flying!" }
}
class Bird implements FlyingAbility {}
JavaClass.java:
public class JavaClass {
public static void main(String[] args) {
Bird b = new Bird();
// FlyingAbility f = new Bird();
}
}
生成的存根是:
public class Bird
extends java.lang.Object implements
FlyingAbility {
;
public groovy.lang.MetaClass getMetaClass() { return (groovy.lang.MetaClass)null;}
public void setMetaClass(groovy.lang.MetaClass mc) { }
public java.lang.Object invokeMethod(java.lang.String method, java.lang.Object arguments) { return null;}
public java.lang.Object getProperty(java.lang.String property) { return null;}
public void setProperty(java.lang.String property, java.lang.Object value) { }
}
这导致 java 编译器抱怨 FlyingAbility 没有定义(并且不是接口)。我很难相信这不受支持:我错过了什么吗?
【问题讨论】:
-
如果这在最新的 Groovy 版本中不起作用,请提出 Groovy 问题。这不太可能由您自己解决。
-
你用什么编译?
-
我在 IntelliJ IDEA 14 的交叉编译中遇到了同样的问题。