use*_*874 2 groovy annotations
我尝试在Groovy类中使用Java注释,但很难将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();
}
Run Code Online (Sandbox Code Playgroud)
带有静态字段的java类:XPerson.java
package x.y.static.domain;
public class XPerson {
public static String ID;
}
Run Code Online (Sandbox Code Playgroud)
还有发生问题的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
}
Run Code Online (Sandbox Code Playgroud)
Eclipse标记"targetAttribute = XPerson.ID"部分:
Groovy:预期'xydomain.XPerson.ID'是java.lang.String类型的内联常量,而不是@ xyannotations.Id中的属性表达式
我也尝试了"XPerson.@ ID"之类的东西,或者为ID字段定义了一个getter,但没有任何帮助.
任何提示都会很棒.
问候,迈克尔