JCodeModel を使用して注釈クラスを生成できますが、1 つ例外があります。これを注釈に追加する方法がわかりません:
@Target(value={METHOD,TYPE,CONSTRUCTOR})
値メソッドの値として定義された値の配列を設定する方法は? 簡単なアノテーションには JAnnotationUse クラスの param() メソッドを使用できますが、配列を値として設定する方法が見つかりません。
JCodeModel を使用して注釈クラスを生成できますが、1 つ例外があります。これを注釈に追加する方法がわかりません:
@Target(value={METHOD,TYPE,CONSTRUCTOR})
値メソッドの値として定義された値の配列を設定する方法は? 簡単なアノテーションには JAnnotationUse クラスの param() メソッドを使用できますが、配列を値として設定する方法が見つかりません。
これに似たものを作ります:
JAnnotationUse annotation = (JClass/JMethod/JFieldVar).annotate(Class<? extends java.lang.annotation.Annotation> MyAnnotation.class);
// Check if the value of the parameter of the annotation is an Array.
if (paramAnnotationValue.getClass().isArray()) {
Object[] paramAnnotationValueArray = (Object[]) paramAnnotationValue;
JAnnotationArrayMember annotationArrayMember = annotation.paramArray("parameter");
for (Object paramValue : paramAnnotationValueArray) {
annotationArrayMember.param((String/Boolean/Class/JType) paramValue);
}
}
// No Array is normal.
else {
(...)
}
次のようなものが生成されます。
@MyAnnotation(parameter = {
"value_a",
"value_b"
})