天天看点

Java-注解-Annotation注解作用

注解作用

  注解其实是代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。通过使用 Annotation, 程序开发人员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充信息。代码分析工具、开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。

java中常见的三个注解

 - @Override : 声明该方法是从父类或接口上继承过来的,执行编译期的检查

 - @SuppressWarnings : 抑制编译器警告 值有好多,只需要知道一个 all  抑制所有的警告

 - @Deprecated : 声明 该方法不赞成使用(方法过时提示)

注解属性:

     注解本质上就是一个接口,接口中有常量和抽象方法

     抽象方法在注解中就被称为注解属性(注解中定义时不需要定义访问权限)

注解属性类型:

 -  基本类型

 -  String

 -  Class

 -  Annotation

 -  Enum

 -  以上类型对应的一维数组

注解有属性的话调用者必须要将给属性赋值(除非这个注解属性有默认值)

    格式: @注解名(属性=属性值)

若注解类型为数组,且只有一个值的时候,可以有两种写法

    方式1: 属性={值1}

    方式2: 属性=值1

若属性名为value的时候,且只需要为这个value属性赋值的时候,value可以省略

定义注解:

Java-注解-Annotation注解作用

调用注解:

Java-注解-Annotation注解作用

元注解

定义在注解上的注解

@Target 规定注解作用在什么上面     

   值为ElementType的枚举值

 - TYPE:作用在类 接口 等上面

 - METHOD:作用方法上面

 - FIELD:作用字段上面

使用Target

Target源码

Java-注解-Annotation注解作用

使用Target定义注解

Java-注解-Annotation注解作用

调用

Java-注解-Annotation注解作用

@Retention  规定注解保留到什么阶段  

   值为RetentionPolicy的三个枚举值

 - SOURCE:只在代码中保留,在字节码文件中就删除了(默认)

 - CLASS:在代码和字节码文件中保留

 - RUNTIME:所有阶段都保留

实现junit包的@Test单元测试功能

需要单元测试的类

Java-注解-Annotation注解作用

自定义注解

Java-注解-Annotation注解作用

主方法类

Java-注解-Annotation注解作用