java - 如何在注释中使用数组常量

标签 java annotations

我想使用常量作为注释值。

interface Client {

    @Retention(RUNTIME)
    @Target(METHOD)
    @interface SomeAnnotation { String[] values(); }

    interface Info {
        String A = "a";
        String B = "b";
        String[] AB = new String[] { A, B };
    }

    @SomeAnnotation(values = { Info.A, Info.B })
    void works();

    @SomeAnnotation(values = Info.AB)
    void doesNotWork();
}

常量 Info.AInfo.B 可以在注释中使用,但不能在数组 Info.AB 中使用,因为它必须是一个数组初始值设定项。注释值仅限于可以内联到类的字节代码中的值。对于数组常量来说这是不可能的,因为它必须在加载 Info 时构造。这个问题有解决办法吗?

最佳答案

不,没有解决方法。

关于java - 如何在注释中使用数组常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591301/

相关文章:

java - 我需要使用 HERE SDK 路由排除指向路线的点

java - 在不同类中操作变量的基础知识

java - 当我一次使用 setcontentpane 时如何添加按钮?

Java 带注释的方法 - 强制执行至少一个带注释的参数

java - JPA 注释 - 如何从与当前对象不同的表中检索单个值?

java - 将 index.jsp 重定向到 Struts 2 Action

Java:如何缩进 Transformer 生成的 XML

java - 放置 xmlns :xsi into my schema using java

java - Spring安全认证: migration from xml to annotations

spring - 使用 ControllerAdvice 添加模型属性