我試着使用Java註釋在一個Groovy類,但有麻煩設定一個Java類的靜態字段作爲參數:訪問在註釋靜態字段
的註釋:Id.java
package x.y.annotations;
import java.lang.annotation.ElementType;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Id {
public Class<Adapter> adapter();
public Class<Object> targetType();
public String targetAttribute();
public String onDelete();
}
Java類與靜態字段:XPerson.java
package x.y.static.domain;
public class XPerson {
public static String ID;
}
而且Groovy類,發生問題:Person.groovy
package x.y.domain
import x.y.annotations.Id
import x.y.static.domain.XPerson
class Person {
@Id(adapter = Adapter, targetType = XPerson, targetAttribute = XPerson.ID, onDelete = "delete")
long id
}
的Eclipse標誌着 「targetAttribute = XPerson.ID」 部分使用:
Groovy:在預期 'xydomain.XPerson.ID' 是java.lang.String類型的內聯常數不在屬性表達@ xyannotations.Id
我也試過類似「XPerson。@ ID」或者爲ID字段定義一個getter,但沒有任何幫助。
任何提示都會很棒。
問候, 邁克爾
嗨,究竟「應該工作」?因爲它仍然是一個錯誤。 – 2015-03-23 14:05:55
問題中所描述的內容應該可行,但它不會,因爲groovy有一個bug – 2015-03-23 15:02:32