Java - 如何在运行时编辑注释字段?

时间:2018-03-15 10:00:16

标签: java annotations

我写了这个简单的注释:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface CSVColumn {
    String name();

    int order();
}

我正在使用它来注释类的一些getter方法。 我能够在运行时获取此注释的值:

    Class classType = objects[0].getClass();
    Method[] methodsArray = classType.getDeclaredMethods();
    List<Method> methods = Arrays.asList(methodsArray);
    //FIlter annotated methods
    methods = methods.stream().filter(method -> method.getAnnotation(CSVColumn.class) != null).collect(Collectors.toList());

    Iterator<Method> methodIterator = methods.iterator();

    while (methodIterator.hasNext()) {
        Method method = methodIterator.next();
        CSVColumn csvColumn = method.getAnnotation(CSVColumn.class);
        String header = csvColumn.name();
    }

但是如何将注释的名称字段设置为其他值? 我应该/可以在注释类中声明一些setter方法吗?

1 个答案:

答案 0 :(得分:0)

使用实用工具类AnnotationUtil

您可以执行<form ref="myForm"> // then in your method... var myFormData = new FormData(this.$refs.myForm) axios({ method: 'post', url: 'myurl', data: myFormData, config: { headers: {'Content-Type': 'multipart/form-data' }} })