有没有办法在同一个类中使用groovy和java代码?

时间:2011-01-26 19:19:27

标签: groovy

我主要是在groovy中编程,但有时它太慢了。所以我编写了一个单独的.java类,并将需要在java方法中运行得更快的代码放入我的groovy代码中调用该java方法。

这导致我最终得到两个单独的文件和两个单独的类。有没有什么方法可以将java方法直接嵌入到groovy文件中,可能用注释标记它以表明它是java?

2 个答案:

答案 0 :(得分:2)

这是groovy ++背后的想法。使用@Typed注释标记类或方法将使其使用静态类型而不是动态类型,同时仍保留很多groovy的优点。

虽然不完全是java,但是类型化的groovy ++方法通常与java一样。

有关groovy ++的更多信息,请访问:https://code.google.com/p/groovypptest/wiki/Welcome

答案 1 :(得分:0)

你不需要做任何特别的事。

只需在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的动态性质,那么只需在相关点使用完整类型。