java - 如何将调用注释的类名和方法作为 "value"传递给注释属性

标签 java annotations

 public class Demo {

     public Demo(){}

     @Annotaion(name = "DemoClass::method1")
     public void method1(params...)
     {

     }

}

我不想硬编码“name”属性,而是需要将其传递为类似 this.getClass().getName().NAME_OF_THE_METHOD_ON_WHICH_INVOKED

最佳答案

首先,创建自定义注释

@Retention(RetentionPolicy.RUNTIME) 
@interface Annotation { 
    public int value1(); 
    public int value2(); 
} 

然后使用它

public class TestClass {
    @Annotation(value1 = 15, value2 = 30) 
    public static void test(){ 
            Class cl = TestClass.class; 
            Method[] allMethods = cl.getMethods(); 
            Method thisMethod = null;

            for (Method m : allMethods)
                if (m.getName().equals("test")) thisMethod = m; 


            Annotation a = thisMethod.getAnnotation(Annotation.class); 
            a.value1(); //returns 15
            a.value2(); //returns 30
    } 
}

关于java - 如何将调用注释的类名和方法作为 "value"传递给注释属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60618811/

相关文章:

java - 如何将注释参数提取到外部文件中?

java - SolrJ 的 ResponseParsers 之间的差异

java - 未能成功地将参数从 primefaces 页面发送到 java bean 类

java - 如何显示自动完成 TextView 的建议列表,该列表仅显示以输入字符开头的单词

java - 如何获取成员变量的注释?

spring-mvc - 类型 元素 "mvc"的前缀 "mvc:annotation-driven"未绑定(bind)

scala - Scala反射,查找并实例化具有给定注释的所有类

java - 当用户保持相机静止时Android相机自动对焦

java - 类数组和排序信息

iOS 显示标注而不是注释