イムパラメータとしての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クラス、問題が発生します。
012 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」部分をマーク期待「xydomain.XPerson.ID」java.lang.String型のインライン一定ではないでプロパティ式であることが@ xyannotations.Id
また、「XPerson。@ ID」やIDフィールドのゲッターを定義してみましたが、何も助けてくれませんでした。
ヒントがあれば大丈夫です。
よろしく、
マイケル
こんにちは、正確には "うまくいく"とは何ですか?それはまだバグです。 –
groovyにはバグがあるので、質問に記載されていることはうまくいくはずですが、そうではありません –