如何设置自定义注释的参数值

时间:2018-02-02 21:48:01

标签: java reflection annotations

我创建了自己的注释,用于创建可视化组件。在创建组合框期间使用以下注释。

@Retention(value = RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SelectParam {

    public String paramName() default "param";

    public int defaultIndex() default 0;

    public String[] options() default "";
}

当我有5个或更少的选项时,这是完美的。我可以按照以下方式使用它:

@SelectParam(options = {"NON ORDERED", "ORDERED"}, paramName = "order")
public void setTreeType(final String index) {
    switch (index) {
        case "NON ORDERED":
            fdt = new FDTu(fdt);
            break;
        case "ORDERED":
            fdt = new FDTo(fdt);
            break;
    }
    outputFDTport.setClassifier(fdt);
}

我有问题,当我想创建组合框时,他的项目存储在数组或List中。有没有可能的方法如何通过数组初始化anotattion参数的值? EQ。像这样的东西:

String [] opts = {"NON ORDERED", "ORDERED"}; 
@SelectParam(options = opts, paramName = "order")
public void setTreeType(final String index) {
    switch (index) {
        case "NON ORDERED":
            fdt = new FDTu(fdt);
            break;
        case "ORDERED":
            fdt = new FDTo(fdt);
            break;
    }
    outputFDTport.setClassifier(fdt);
}

0 个答案:

没有答案