8
我有兩個項目,一個scala項目和一個java項目。我的scala項目引用了構建路徑中的java項目。在我的Java項目中,我宣佈了以下注釋:如何讓java方法註解在scala中工作
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
public String Name();
}
在我的scala項目中,我註釋了一些方法。即
class MyClass {
...
@MyAnnotation(Name="Blah")
def myMethod() {
...
}
}
在另一個文件的某處,我試圖拉出註釋。
var methods = myClassInstance.getClass().getDeclaredMethods()
var myMethod : Method = null
for (method <- methods) {
if (method.getName().equals("myMethod")) {
myMethod = method
}
}
var annotations = myMethod.getDeclaredAnnotations()
不幸的是,annotations
始終是一個空數組。我是在做一些根本性錯誤還是我錯過了一些小事?謝謝!
編輯 最初,我用myAnnotation兩次註釋myMethod,這是有人指出的不正確。事實證明,這不是問題。 annotations
我仍然得到一個空數組。沒有例外被拋出。
謝謝你指出。不幸的是,這不是問題。即使有一個註釋,我仍然得到一個空數組。沒有例外正在被拋出 – Jordan
你是如何得到這個工作的?你能舉一個例子嗎?謝謝! – Jordan
正如我所說,我只是使用您的發佈代碼。你發佈的代碼會引發異常(第一版本),並且有編譯錯誤(第二個版本,你應該爲這行'var myMethod = null'定義類型),在我解決它之後,它會起作用。而我的Scala版本是2.9.3 –