这样写java注解有啥作用?

@FirstAnno(i = 3, d = 5.1, ins = 3)
public class AnnotationDemo {

    @FirstAnno(i = 3, d = 5.1, ins = 3)
    int i = 5;
    double d = 3.2;

    @FirstAnno(i = 3, d = 5.1, ins = 3)
    public static void main(String[] args) {
        
        int j = 3;
        System.out.println(j);
    }
}

@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.METHOD })
@Retention(RetentionPolicy.CLASS)
@interface FirstAnno {

    // int i = 5;
    // 定义了一个属性i
    int i();

    // 表示给属性d一个默认值3.2
    double d() default 3.2;

    int[] ins();
}

我已经知道了注解是用来给编译器提示 以及代码功能注释

这段代码设置了变量i,d,ins

是在哪里用的?

阅读 1.5k
1 个回答

自定义的注解,也需要自定义解析器。所谓解析不过就是用反射机制获取类、方法、成员变量等上面的注解,然后获取注解里i,d等信息进行其他处理,比如可以获取注解里的i,然后用反射赋值给AnnotationDemo实例对象里的i。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题