java注解

注解

  1. 概念:也叫元数据,一种代码级别的说明,是1.5后的新特性,用来对类、接口等进行说明

  2. 作用:编写文档(如api文档)、代码分析(使用反射)、编译检查

  3. JDK预定义的注解

    • @Override:检测被该注解的方法是否是继承自父类或父接口的

    • @Deprecated:将该注解标注的内容,表示为已过时

    • @SuppressWarnings:压制警告 需要传参,一般传“all”

  4. 自定义注解

​ 格式:

元注解
public  @interface 注解名称{
	属性列表();
}
  1. 本质:本质上就是一个接口,默认继承了java.lang.annotation.Annotation
public    interface    MyAnno   extends    java.lang.annotation.Annotation{}
  1. 属性:接口中可以定义的成员方法(抽象方法)

​ 要求:

  • 属性的返回值类型 ( 只能返回:基本数据类型、String,枚举、注解以及以上类型的数组)

  • 定义了属性,在使用时需要给属性赋值

  • 如果定义属性时,使用default关键字给属性默认值初始化值时,则使用注解时,可以不进行属性赋值

​ 注:如果只有一个属性需要赋值,并且属性的名叫value,则属性名可以不写

例:

​ 定义注解为:

[外链图片转存失败(img-AuPRq4x5-1562495184460)(C:\Users\20215\AppData\Roaming\Typora\typora-user-images\1562079917566.png)]

​ 使用时为:

[外链图片转存失败(img-9LDzOwbl-1562495184476)(C:\Users\20215\AppData\Roaming\Typora\typora-user-images\1562079870325.png)]

​ 各种类型的赋值方式

[外链图片转存失败(img-2jPXp3br-1562495184478)(C:\Users\20215\AppData\Roaming\Typora\typora-user-images\1562080204382.png)]

其中第一个为int 第二个为枚举,第三个为注解,第四个为数组(如果数组中只有一个值,大括号可以省略)

  1. 元注解:用于描述注解的注解

	 - @Target:描述注解能够作用的位置     ,可以存在多个ElementType,用逗号隔开
		 - ElementType.TYPE     表示只能作用在类上
		 - ElementType.METHOD   可以作用于方法上
		 - ElementType.FIELD:可以作用于成员变量上
	 - @Retention:描述注解被保留的阶段
		 - @Retention(RetentionPolicy。RUNTIME):当前被描述的注解,会保留到class字节码文件中,并被JVM读取到(一般会用这个)
		 - @Documented: 描述注解是否被抽取到api文档住
		 - @Inherited:描述注解是否被子类继承
  • 在程序中使用(解析)注解

​ 主要是获取注解中的属性值

​ 1.获取注解定义位置的对象(class、Method等对象)

​ 2.获取指定的注解 getAnnotation(Class)

​ 3.调用注解中的抽象方法获取配置的属性值

小结:

​ 以后大部分都是使用注解,而不是解析注解

​ 注解给编译器和解析程序使用

​ 注解不是程序的一部分,可以理解为一个标签


青春短暂,我在路上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值