Как установить несколько свойств Java-аннотации с помощью xtend (используя xbase)
Согласно документации JvmTypesBuilder, я должен использовать toAnnotation(EObject sourceElement, Class type, Object value)
Я не понимаю, какую ценность я должен поставить там? Потому что у меня есть аннотация
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface OResultInfo {
String rowNames() default "";
String columnNames() default "";
String keyNames() default "";
}
Я абсолютно не знаю, как установить эти значения. Может быть, есть что-то о аннотациях Java, которые я не знаю / не понимаю?
1 ответ
Вам нужно использовать
val jvmAnnotation = toAnnotation(EObject sourceElement, Class type)
И создайте и добавьте значения аннотаций для каждого значения и назначьте его для jvmAnnotationReference:
val annotationValue = TypesFactory.eInstance.createJvmStringAnnotationValue();
annotationValue.getValues().add(value);
annotationValue.setOperation(annotationTypesOperation); //i.e. the JvmOperation representing rowNames(), columnNames() or keyNames()
jvmAnnotation.getValues().add(annotationValue);