java基础——注解Annotation(基本注解类型、自定义注解类型、对注解进行注解)

一、注解(Annotation)概述

  • 从JDK 5.0开始, Java增加了对元数据(MetaData)的支持,也就是Annotation(注解)
  • Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理.通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息.
  • Annotation可以像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被保存在Annotation的"name=value"对中.
  • Annotation能被用来为程序元素(类,方法,成员变量等)设置元数据

二、JDK内置的基本注解类型(3个)

使用Annotation时要在其前面增加@符号,并把该Annotation当成一个修饰符使用。用于修饰它支持的程序元素。

三个基本的Annotation:
  • @Override:限定重写父类方法,该注释只能用于方法
  • @Deprecated:用于表示某个程序元素(类,方法等)已过时
  • @SuppressWarnings:抑制编译器警告

三、自定义注解类型

修饰符为:@interface

//自定义的注解
public @interface MyAnnotation {
	String value() default "hello";
}

四、JDK的元Annotation(对注解进行注解)(4个)

用于修饰其他Annotation定义

(一)Retention(用来修饰注解的生命周期)

@Rentention包含一个RetentionPolicy类型的成员变量,使用@Rentention时必须为该value成员变量指定值

  1. RetentionPolicy.SOURCE:编译器直接丢弃这种策略的注释(例如:@SuppressWarnings)
  2. RetentionPolicy.CLASS:编译器将把注释记录在class 文件中.当运行Java程序时, JVM不会保留注解。这是默认值
  3. RetentionPolicy.RUNTIME:编译器将把注释记录在class文件中**.当运行Java程序时,JVM会保留注释.程序可以通过反射获取该注释**
(二)Target

@Target:用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素. @Target也包含一个名为value的成员变量.

(三)Documented

@Documented:用于指定被该元Annotation修饰的Annotation类将被javadoc工具提取成文档.

  • 定义为Documented的注解必须设置Retention值为RUNTIME。
(四)Inherited

@Inherited:被它修饰的Annotation将具有继承性.如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解,实际应用中,使用较少

五、利用反射获取注解信息(在反射部分涉及)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值