• Java注解(一)


    Java从JDK 5开始引入注解(annotation)。

    注解使得Java源代码中不但可以包含功能性的实现代码,还可以添加元数据。

    注解的功能类似于代码中的注释,所不同的是注解不是提供代码功能的说明,而是实现程序功能的重要组成部分。

    Java注解已经在很多框架中得到了广泛的使用,用来简化程序中的配置。

    下面先来看看java中常用的注解。

    一、常用注解

    ① @Override注解

    package java.lang;
    
    import java.lang.annotation.*;
    
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.SOURCE)
    public @interface Override {
    }

    @Override注解表示子类要重写父类的对应方法。

    如果方法利用此注释类型进行注解但没有重写超类方法,则编译器会生成一条错误消息。

    顺便说一句:@override注解在JDK 5环境下只能用于对继承的类的方法的重写,实现接口中的方法不能用@override注解。但是JDK1.6可以。

    ② @Deprecated注解

    package java.lang;
    
    import java.lang.annotation.*;
    
    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Deprecated {
    }

     @Deprecated注解表示方法是不被建议使用的。

    ③ @SuppressWarnings注解

    package java.lang;
    
    import java.lang.annotation.*;
    import java.lang.annotation.ElementType;
    import static java.lang.annotation.ElementType.*;
    
    @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
    @Retention(RetentionPolicy.SOURCE)
    public @interface SuppressWarnings {
        String[] value();
    }

     @SuppressWarnings注解表示抑制警告。

    例如下面的代码,声明了2个未使用的变量,加上2个@SuppressWarnings来抑制警告。

    @SuppressWarnings("unused")
    int a=10;
            
    @SuppressWarnings({ "rawtypes", "unused" })
    List list =new ArrayList();

     上面给出了Java自带的几个常用的注解,下面先来了解下代码中出现的诸如@Target,@Retention,@Documented(这些也叫元注解)的意义。

    二、元注解

     ① @Target

    @Target 表示该注解用于什么地方,可取的值包括:

    • ElemenetType.CONSTRUCTOR       构造器声明
    • ElemenetType.FIELD          域声明(包括 enum 实例)
    • ElemenetType.LOCAL_VARIABLE     局部变量声明
    • ElemenetType.METHOD         方法声明
    • ElemenetType.PACKAGE         包声明
    • ElemenetType.PARAMETER       参数声明
    • ElemenetType.TYPE          类,接口(包括注解类型)或enum声明
    • ElementType.ANNOTATION_TYPE     注解

    ② @Retention

    @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:

    • RetentionPolicy.SOURCE       注解将被编译器丢弃
    • RetentionPolicy.CLASS        注解在class文件中可用,但会被VM丢弃
    • RetentionPolicy.RUNTIME       JVM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。

    ③ @Documented

    @Documented 将此注解包含在 javadoc 中

    ④ @Inherited

    @Inherited 允许子类继承父类中的注解

  • 相关阅读:
    可用性战术
    操作系统学习笔记_02
    SpringBoot程序启动报错:FileNotFoundException:class path resource [***] cannot be opened because it does not exist
    【SQL干货】求去重后的count数
    mybatis连接Oracle执行begin..end批量操作返回行数问题
    【SQL干货】一条语句搞定订单的排序
    【SQL干货】删除重复数据记录
    【SQL干货】一条sql按季度统计交易数据
    java语法糖类型推导/类型推断(type inference)
    ThreadLocal小解
  • 原文地址:https://www.cnblogs.com/yejg1212/p/3187362.html
Copyright © 2020-2023  润新知