当前位置: 首页 > 面试题库 >

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

殳凯捷
2023-03-14
问题内容

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

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 获得注释。如果它自动为您继承方法,那么如果我需要以自己的方式实现该方法,那又如何呢? 怎么知道我的实现方式? 另外,据说如果我不想使用它,而是以一种老式的Java方式执行它,则必须实现类的,和方法以及类的注释类型方法。 这是为什么? 即使我不知道注释和以前运行良好的程序,我也从未实现过。 请有人从头开始向我解释一下。 问题答案: 只是没有误会:您确实要询问java.l

  • 我正在从下面的方法中获取电影列表,并带有@Cacheable注释。由于它没有任何参数,我将key设置为#root.method.name。 现在,我想添加一个新的电影,同样应该添加到上述缓存。 我试过这个,但它给了我例外。 我们可以在这里使用@CachePut注释,还是有其他方法?

  • 我没有得到Java中继承的

  • 我必须调试使用Swagger开发的RESTAPI Java项目。我是新手,所以我对如何做某些事情有点困惑。例如,这里有一种方法: 代码 200 不是 类型,而是

  • 我对这条规则有两个问题: > 在注释函数的最后一个参数中,我找不到正确的语法来将文本字符串与捕获组变量组合在一起。上面的“操作”字段导致以下异常: ParseException:在第34行第72列遇到“+”“+”。我期待其中之一:“)”...“,”... 显然,当我使用“+”将字符串追加到一起时,最后一个参数没有正确地强制转换为字符串。 将最后一个参数中的字符串组合到注释函数中的正确方法是什么?