注解的理解、自定义注解

xiaoxiao2021-02-28  211

目的: 自定义注解模拟@Test。

 

注解概述:

概念:Annotation注解,是一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、 枚举是在同一个层次。注解就是告诉程序,我所修饰的代码是如何执行的。

注解的作用:

编译检查:通过代码里标识注解,让编译器能够实现基本的编译检查。如@Override。

代码分析:通过代码里标识注解,对代码进行分析,从而达到取代XML的目的。

编写文档:通过代码里标识注解,辅助生成帮助文档对应的内容。

 

 

JDK常用注解介绍:

@Override:标记方法重写,只能标记在方法上。

标记父类的重写(JDK5.0),标记接口方法的实现重写(JDK6.0).

@SuppressWarning:压制警告,可以标记方法、变量、类上。

会在程序的源码-预编译阶段进行警告的压制,一般使用:@SuppressWarning("all")

使用:

开发时,将所有警告压制,防止被警告打断开发思路。

测试时,将压制警告去掉,警告机制开启,这样方便测试。

 

@Deprecated:标记方法过时,过时方法存在安全问题。

会在程序的源码-预编译阶段开始起作用。告知程序我的方法是过时的,如果有程序员调用这样过时的方 法,会报过时的警告。即使调用了过时方法,过时方法也正常执行。

 

 

自定义注解:

注解本质:注解本质是一个接口(查看源码)

 

注解的属性赋值:

属性的类型:基本、String类型、Class类型、枚举类型、注解类型、数组

注解的赋值特殊情况:

如果注解中,只有一个属性,并且名字叫value,赋值可以忽略属性名,即 @MyTest("aaa")。

属性如果没有默认值,使用时必须赋值。

赋予默认值,使用是就不用赋值了;如果赋值,就会覆盖默认值。如 String value() default "vip";

 

自定义注解步骤:

1、定义注解:

图666666

2、使用注解:

图666666

3、程序解析,并执行注解:写反射代码

图666666

4、要想使用isAnnotationPresent   必须规定注解是在运行阶段起作用

以下两个专门修饰注解的元注解:

@Target({TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})

@Retention(RetentionPolicy.SOURCE)

@Target   规定注解能够修饰在那个地方   ,一般都是Method,非必须项

@Retention   规定注解在哪个阶段起作用   ,一般都是RetentionPolicy.RUNTIME,必须规定的强制

图666666

 

 

 

 

 

 

待续……

转载请注明原文地址: https://www.6miu.com/read-24181.html

最新回复(0)