1

JCodeModel を使用して注釈クラスを生成できますが、1 つ例外があります。これを注釈に追加する方法がわかりません:

@Target(value={METHOD,TYPE,CONSTRUCTOR})

メソッドの値として定義された値の配列を設定する方法は? 簡単なアノテーションには JAnnotationUse クラスの param() メソッドを使用できますが、配列を値として設定する方法が見つかりません。

4

1 に答える 1

0

これに似たものを作ります:

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"
})
于 2013-02-12T16:36:08.607 に答える