我主要在groovy中編程,但偶爾它太慢了。因此,我編寫了一個單獨的.java類,並將需要在java方法中運行得更快的代碼從我的常規代碼中調用該java方法。有什麼辦法可以爲同一個類使用groovy和java代碼嗎?
這使我結束了兩個單獨的文件和兩個單獨的類。有沒有什麼辦法可以將java方法嵌入到groovy文件中,也許可以用註釋標記它以表明它是java?
我主要在groovy中編程,但偶爾它太慢了。因此,我編寫了一個單獨的.java類,並將需要在java方法中運行得更快的代碼從我的常規代碼中調用該java方法。有什麼辦法可以爲同一個類使用groovy和java代碼嗎?
這使我結束了兩個單獨的文件和兩個單獨的類。有沒有什麼辦法可以將java方法嵌入到groovy文件中,也許可以用註釋標記它以表明它是java?
這是groovy ++背後的想法。使用@Typed註釋標記類或方法將使其使用靜態類型而不是動態類型,同時仍保留常規的優點。
雖然不完全是java,但鍵入的groovy ++方法通常與java會執行相同的操作。
關於Groovy ++的更多信息,請訪問:https://code.google.com/p/groovypptest/wiki/Welcome
你不需要做任何特殊。
只需在groovy類後面寫入Java類即可。所有Java源中的99%也是有效的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 ++的somethign完全不同。 JavaClass需要將所有東西都完全鍵入爲「Java」,但是如果您只是在相關的常規方法中使用類型,則可以解決您的問題。
class AnotherGroovyClass {
// typed
public Result someMethod(SomeArg arg1, SomeOtherArg arg2) {
}
def someVariable; // untyped
}
如果你覺得缺乏速度來源於常規的動態性質就用全類型在相關點。