Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法将groovy和java代码用于同一个类?_Groovy - Fatal编程技术网

有没有办法将groovy和java代码用于同一个类?

有没有办法将groovy和java代码用于同一个类?,groovy,Groovy,我主要用groovy编程,但有时速度太慢。因此,我编写了一个单独的.java类,将需要更快运行的代码放在java方法中,并从groovy代码中调用该java方法 这导致我最终得到两个独立的文件和两个独立的类。有没有办法将java方法直接嵌入groovy文件,或者用注释标记它以表明它是java?这就是groovy++背后的想法。用@Typed注释标记类或方法将导致它使用静态类型而不是动态类型,同时仍然保留groovy的许多优点 类型化groovy++方法虽然不完全是java,但其性能通常与java

我主要用groovy编程,但有时速度太慢。因此,我编写了一个单独的.java类,将需要更快运行的代码放在java方法中,并从groovy代码中调用该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的动态特性导致了速度的不足,那么只需在相关点使用完整类型即可