静态编译代码中的Groovy扩展方法

静态编译代码中的Groovy扩展方法,groovy,extension-methods,compile-static,Groovy,Extension Methods,Compile Static,在Groovy中,有许多方法可以定义现有类型的扩展方法,例如元类、类别、扩展模块等。我想知道,其中哪些方法与通过@CompileStatic进行的静态编译兼容。我知道,可以将一个预构建的扩展模块jar放入类路径中,为例如String提供扩展方法,然后编写一个@CompileStatic Groovy类,该类使用扩展模块中的扩展方法。然而,我希望有一个解决方案,我可以在同一个项目中定义扩展方法,这样我就不必提前构建扩展模块。这在Groovy中可能吗?tim_-yates在评论中的回答:很可能不可能

在Groovy中,有许多方法可以定义现有类型的扩展方法,例如元类、类别、扩展模块等。我想知道,其中哪些方法与通过@CompileStatic进行的静态编译兼容。我知道,可以将一个预构建的扩展模块jar放入类路径中,为例如String提供扩展方法,然后编写一个@CompileStatic Groovy类,该类使用扩展模块中的扩展方法。然而,我希望有一个解决方案,我可以在同一个项目中定义扩展方法,这样我就不必提前构建扩展模块。这在Groovy中可能吗?

tim_-yates在评论中的回答:很可能不可能,请参阅。

tim_-yates在评论中的回答:很可能不可能,请参阅。

我想你已经尝试过了,但没有成功?你尝试了什么?你是否暗示我列出的可能性应该有效?嗯,我尝试在同一个项目中定义一个扩展模块,我想在其中使用它,但在添加@CompileStatic时没有。老实说,我没有尝试使用带有“use”的类别,也没有尝试使用meta类,但我99%确定它们不会工作,因为它们本质上是动态的。Traits不是一个选项,因为它和使用静态方法一样冗长。编辑:谢谢你的链接,但是答案提出了一个单独的项目,而我想知道是否有一个单一的项目解决方案。我找到了编写静态编译器的人。我不相信有什么改变…但我可能错了。。。我把信心放在85%左右,所以会觉得很紧张,因为我有足够的信心,我想我的问题的答案是简单的不。谢谢!额外的源代码集可能是最好的解决方法。我想你试过了,但没有成功?你尝试了什么?你是否暗示我列出的可能性应该有效?嗯,我尝试在同一个项目中定义一个扩展模块,我想在其中使用它,但在添加@CompileStatic时没有。老实说,我没有尝试使用带有“use”的类别,也没有尝试使用meta类,但我99%确定它们不会工作,因为它们本质上是动态的。Traits不是一个选项,因为它和使用静态方法一样冗长。编辑:谢谢你的链接,但是答案提出了一个单独的项目,而我想知道是否有一个单一的项目解决方案。我找到了编写静态编译器的人。我不相信有什么改变…但我可能错了。。。我把信心放在85%左右,所以会觉得很紧张,因为我有足够的信心,我想我的问题的答案是简单的不。谢谢!额外的源代码集可能是最好的解决方法。