gpt4 book ai didi

java - Groovy traits 是否支持与 Java 联合编译?

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:18 26 4
gpt4 key购买 nike

我对 Groovy 中的 traits 感到非常兴奋,但我根本无法让它们在联合编译中工作。示例:

Bird.groovy:

trait FlyingAbility {
String fly() { "I'm flying!" }
}

class Bird implements FlyingAbility {}

Java类.java:

public class JavaClass {
public static void main(String[] args) {
Bird b = new Bird();
// FlyingAbility f = new Bird();
}
}

生成的 stub 是:

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 未定义(并且不是接口(interface))。我很难相信这是不受支持的:我错过了什么吗?

最佳答案

I find it hard to believe this is not supported: am I missing something?

您没有指明您使用的是哪个版本的 Groovy,并且在某些时候可能存在错误,但您的问题的答案是它受支持。

查看项目 https://github.com/jeffbrown/traitandjava .相关文件是:

https://github.com/jeffbrown/traitandjava/blob/master/src/main/groovy/demo/FlyingAbility.groovy

https://github.com/jeffbrown/traitandjava/blob/master/src/main/groovy/demo/Bird.groovy

https://github.com/jeffbrown/traitandjava/blob/master/src/main/groovy/demo/BirdKeeper.java

https://github.com/jeffbrown/traitandjava/blob/master/src/test/groovy/demo/BirdKeeperSpec.groovy

该项目使用 Groovy 2.4.4,一切正常。

希望对您有所帮助。

关于java - Groovy traits 是否支持与 Java 联合编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27159905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com