zoukankan      html  css  js  c++  java
  • java自定义注解


    这次的文章是我在上次文章的AOP文章遇到一个坑,通过joinPoint得到签名后,获得到他的注解为空,后来发现自己没有加相应的注解,这里记录此次的坑。

    首先我们看一下正确的注释代码

    
    @Target(ElementType.METHOD)
    @Documented
    @Inherited
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Cache {
    
        boolean ifDelete() default false;
    }
    
    
    

    上次我们的文章的中本来是没有@Target等注解的,但是后来发现,这几个注解的作用是非常大的。

    每个注解的作用

    @Documented

    这个注解的作用就是,在生成javadoc文档的时候,将用过这个这个注解的方法的文档里面也写上这个注解。

    @Retention(Retention.RUNTIME)

    这个注解的作用在我看来就是在编译java代码的时候将这个注解也加上,也就是为什么不加这个注解,我们利用getAnnotation()这个方法等到的注解为null了。

    Target()

    这个注解是我们这个注解是为谁服务的,比如我们上面写的ElementType.METHOD,就是决定我们是为了方法服务的,如果写在类上面,这个注解会失效。

    ElementType后面还有其他类别:

    • ANNOTATION_TYPE 注解类型声明
    • CONSTRUCTOR 构造方法声明
    • FIELD 字段声明(包括枚举常量)
    • LOCAL_VARIABLE 局部变量声明
    • METHOD 方法声明
    • PACKAGE 包声明
    • PARAMETER 参数声明
    • TYPE 类、接口(包括注解类型)或枚举声明
    • TYPE_PARAMETER @since 1.8
    • TYPE_USE @since 1.8

    @Inherited
    这个注解表示,打上这个注解之后,这个类如果被其他类继承后,子类会自动打上这个注解。

  • 相关阅读:
    poj1047
    poj1129
    poj1050
    C#中break、continue的用法
    关于一个不大常用的SQL数据类型-UNIQUEIDENTIFIER
    关于net2.0里面新出现的类backgroundworker的应用
    深入讲解SQL Union和Union All的使用方法
    让你一次性搞定堆、栈、值类型、引用类型 (转载)
    EXEC与sp_executesql的区别及应用(转)
    几种常用排序算法总结(转载)
  • 原文地址:https://www.cnblogs.com/adroitwolf/p/14309966.html
Copyright © 2011-2022 走看看