注解的理解、自定义注解

目的: 自定义注解模拟@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、定义注解:

003VxnK9zy79uR7qSZFc7&690

2、使用注解:

003VxnK9zy79uR9bkZIda&690

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

003VxnK9zy79uRak6Dq04&690

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

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

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

@Retention(RetentionPolicy.SOURCE)

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

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

003VxnK9zy79uRbtIZ6a4&690

 

 

 

 

 

 

待续……

转载于:https://my.oschina.net/u/3392125/blog/869331

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值