• 【JAVA SE基础篇】66.注解,反射机制处理注解


    1.注解入门

    注解(Annotation)由jdk1.5后引入

    1.注解作用:

      1.不是程序本身,可以对程序作出解释(与注释功能一致)

      2.可以被其他程序读取(编译器)。

    注释与注解的区别:

      注解信息处理流程,是注解的和注释的最大区别。没有注解信息处理流程,注解就没有意义

    注解的格式:

      注解是以“@注解名”在代码中存在,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”)。

    注解在哪里使用:

      可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,

      我们可以通过反射机制编程实现对这些元数据的访问。

    2.内置注解

      @Override:定义在java.lang.Override中,此注释只适用于修饰方法,

    表示一个方法声明打算重写超类中的另一个方法声明

      @Deprecated:定义在java.lang.Deprecated中,此注释可用于修辞方法,属性,类,

    表示不鼓励程序员使用这样的元素,通常是因为他很危险或存在更好的选择

      @SuppressWarnings:定义在java.lang.SuppressWarnings中,

    用来抑制编译时的警告信息

    3.自定义注解,元注解

    1.元注解作用:

      负责注解其他注释。Java中定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型做说明

    这些类型和他们所支持的类在java.lang.annotation包中可以找到

    @Target:用于描述注解的适用范围

      package(包):PACKAGE

      类,接口,枚举,annotation:TYPE

      构造器:CONSTRUCTOR

      属性:FIELD

      方法:METHOD

      局部变量:LOCAL_VARIABLE

      参数:PARAMETER

    @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期

      SOURCE:在源文件中有效(即源文件保留)

      CLASS:在class文件中有效(即class保留)

      RUNTIME:在运行使有效(即运行时保留),为Runtime可以被反射机制读取

    @Documented:

    @Inherited

    2.自定义注释:

      使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

    注:@interface用来声明一个注释,格式为 public @interface 注解名{定义体}

    其中每一个方法实际上是声明了一个配置参数

    方法明就是参数的名称

    返回值类型就是参数类型(返回值类型只能是基本类型、class、String、enum)

    可以通过default来声明参数的默认值

    如果只有一个参数成员,一般参数名为vaule

    3.反射机制处理注解

    ORM:类和表互相转化

    类和表结构对应

    属性和字段对应

    对象和机录对应

    使用注解完成类和表结构的映射关系

  • 相关阅读:
    BZOJ2219数论之神——BSGS+中国剩余定理+原根与指标+欧拉定理+exgcd
    Luogu 3690 Link Cut Tree
    CF1009F Dominant Indices
    CF600E Lomsat gelral
    bzoj 4303 数列
    CF1114F Please, another Queries on Array?
    CF1114B Yet Another Array Partitioning Task
    bzoj 1858 序列操作
    bzoj 4852 炸弹攻击
    bzoj 3564 信号增幅仪
  • 原文地址:https://www.cnblogs.com/chengkuan/p/13410529.html
Copyright © 2020-2023  润新知