Java 如何将数组作为注释参数传递?

Java 如何将数组作为注释参数传递?,java,arrays,annotations,argument-passing,Java,Arrays,Annotations,Argument Passing,我有以下课程 public class MultipartFileWrapper { @Extensions({".jpg",".png",".gif",".bmp",".mp4"}) MultipartFile multipartFile; ... } 现在我想将格式提取到常量。 但我不知道如何替换 @Extensions({".jpg",".png",".gif",".bmp",".mp4"}) 如果我有数组 String[] validFormats 其中

我有以下课程

public class MultipartFileWrapper {
    @Extensions({".jpg",".png",".gif",".bmp",".mp4"})
    MultipartFile multipartFile;  
    ...
}
现在我想将格式提取到常量。 但我不知道如何替换

@Extensions({".jpg",".png",".gif",".bmp",".mp4"})
如果我有数组

String[] validFormats
其中包含列出的格式。我想写这样的东西:

public class MultipartFileWrapper {
        @Extensions(validFormats)
        MultipartFile multipartFile;  
        ...
    }

现在我明白你的问题了。。。你可以在课堂上尝试这种方法:

public String[] getExtensions()throws NoSuchFieldException, SecurityException{
    return MultipartFileWrapper.class.getDeclaredField("multipartFile").getAnnotation(Extensions.class).value();
}

调用该方法并获取“annoted”值

我认为批注不接受数组作为参数的一部分,因为这些值在运行时可能会更改?嗯……在这种情况下,我如何提取配置?