我正在开发一个现有的java代码库,但说服团队使用交叉编译,这样就可以在groovy中完成新的开发,同时仍然使用旧的代码基。这两个世界的优点,低风险,很多好处,等等。
我正试图解决一个问题,Groovy的特性特性很好地解决了这个问题,但它必须处理现有的java类或仍然想用java编写的开发人员的新类。
在java中执行class duck implements FlyingAbility {会引发一个有关实现的错误,IntelliJ的automatix将实现java类中特征中的所有方法,就好像它只是一个接口一样。
是否有一种方法可以在java类中使用特性,类似于它们在groovy类中的工作方式?
发布于 2016-01-21 00:34:14
您不能在Java类中使用特性。Groovy特性是作为应用到的类的编译时转换实现的,Java类不会通过Groovy编译器传递。
也就是说,将Java代码转换为Groovy通常非常简单和将@CompileStatic添加到类中通常会生成类似于等效Java的代码,尽管(目前)使用的.class文件要大一些。
发布于 2019-10-02 06:57:45
如果您只需要使用一个特性,就可以在Groovy中创建一个代理类:
GroovyTrait.groovy
trait GroovyTrait {
}GroovyClass.groovy
class GroovyClass implements GroovyTrait {
}JavaClass.java
class JavaClass extends GroovyClass {
}https://stackoverflow.com/questions/34912756
复制相似问题