gpt4 book ai didi

java - 使用反射从界面获取注释

转载 作者:行者123 更新时间:2023-11-29 05:38:36 26 4
gpt4 key购买 nike

我有下一个界面:

public interface AG {
@Params(param = {"user","userN"})
public String addUse(){}
}

现在,我想在反射中得到注释,所以我写了下一个:

    Method[] methods = AG.class.getDeclaredMethods();
for (int i = 0; i<methods.length; i++){
String name = methods[i].getName();
if (name.equals("addUse")){
Method method = methods[i];
Annotation[] annotaions = method.getAnnotations();}}

我看到注释是一个空集(当方法是 addUse 时)。可能是什么原因?

最佳答案

您的代码将仅适用于具有正确 retention policy 的注释可以在运行时进行内省(introspection)。特别是,它应该是 RUNTIME,如下所示:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Params {
...

retention policy ,顾名思义,决定了关于注解的信息保存到什么时间,对应的字节码:

请注意,这意味着从理论上讲,CLASS-保留注释可以由 VM 提供。然而,在实践中,情况并非如此(当然不是在 Oracle JVM 上)。

关于java - 使用反射从界面获取注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18569068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com