我主要是在groovy中编程,但有时它太慢了。所以我编写了一个单独的.java类,并将需要在java方法中运行得更快的代码放入我的groovy代码中调用该java方法。
这导致我最终得到两个单独的文件和两个单独的类。有没有什么方法可以将java方法直接嵌入到groovy文件中,可能用注释标记它以表明它是java?
答案 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的动态性质,那么只需在相关点使用完整类型。