有没有办法将groovy和java代码用于同一个类?
我主要用groovy编程,但有时速度太慢。因此,我编写了一个单独的.java类,将需要更快运行的代码放在java方法中,并从groovy代码中调用该java方法有没有办法将groovy和java代码用于同一个类?,groovy,Groovy,我主要用groovy编程,但有时速度太慢。因此,我编写了一个单独的.java类,将需要更快运行的代码放在java方法中,并从groovy代码中调用该java方法 这导致我最终得到两个独立的文件和两个独立的类。有没有办法将java方法直接嵌入groovy文件,或者用注释标记它以表明它是java?这就是groovy++背后的想法。用@Typed注释标记类或方法将导致它使用静态类型而不是动态类型,同时仍然保留groovy的许多优点 类型化groovy++方法虽然不完全是java,但其性能通常与java
这导致我最终得到两个独立的文件和两个独立的类。有没有办法将java方法直接嵌入groovy文件,或者用注释标记它以表明它是java?这就是groovy++背后的想法。用@Typed注释标记类或方法将导致它使用静态类型而不是动态类型,同时仍然保留groovy的许多优点 类型化groovy++方法虽然不完全是java,但其性能通常与java大致相同
有关groovy++的更多信息,请访问:您不需要做任何特殊的事情 只需在groovy类后面编写Java类。99%的Java源代码也是有效的groovy源代码
class GroovyClass {
def a;
def doSomething(x,y) { return x*y; }
}
class JavaClass {
SomeType someVar;
public JavaClass() { /* ... */ } // some contructor
public void doit(String a, int b) {} // full typed method, that is java
}
Groovy++完全不同。
JavaClass需要将所有内容都完全类型化才能成为“Java”,但是如果您只在相关groovy方法中使用类型,那么您的问题就可以更容易地得到解决
class AnotherGroovyClass {
// typed
public Result someMethod(SomeArg arg1, SomeOtherArg arg2) {
}
def someVariable; // untyped
}
如果您认为groovy的动态特性导致了速度的不足,那么只需在相关点使用完整类型即可