Я пытаюсь использовать аннотацию 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;
}
И классный класс, где возникает проблема: 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: ожидается, что x.y.domain.XPerson.ID 'будет встроенной константой типа java.lang. Строка не является выражением свойства в @ x.y.annotations.Id
Я также пробовал что-то вроде «XPerson. @ ID» или определение метода получения для поля ID, но ничего не помогло.
Любые намеки были бы великолепны.
С уважением,
майкл