JavaSE--day15--注解

引入

注解:Annotation,也叫元数据

什么是注解:

个人理解:特殊标记,

这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。

也就是说:我们通过注解,可以实现在不改变原有逻辑的情况下,在源文件中嵌入一些数据

框架 = 注解 + 反射 + 设计模式

元注解

用来修饰其他注解的注解(四种:Retention,Target,Documented,Inherited)

@Retention:指定修饰注解的生命周期

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

RetentionPolicy.SOURCE:在源文件中有效,编译器直接丢弃这种策略的注释,在.class文件中不会保留注解信息

RetentionPolicy.CLASS:在class文件中有效,保留在.class文件中,但是当运行Java程序时,他就不会继续加载了,不会保留在内存中,JVM不会保留注解。如果注解没有加Retention元注解,那么相当于默认的注解就是这种状态。

RetentionPolicy.RUNTIME:在运行时有效,当运行 Java程序时,JVM会保留注释,加载在内存中了,那么程序可以通过反射获取该注释。

@Target:用来指定被修饰的注解能用来修饰哪些程序元素

包含一个名为value的成员变量

  • ANNOTATION_TYPE:注解类型声明。
  • CONSTRUCTOR:构造器声明。
  • FIELD:字段声明(包括枚举常量)。
  • LOCAL_VARIABLE:局部变量声明。
  • METHOD:方法声明。
  • PACKAGE:包声明。
  • PARAMETER:参数声明。
  • TYPE:类、接口(包括注解类型)或枚举声明

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

默认情况下,javadoc是 不包括注解的,但是加上了这个注解生成的文档中就会带着注解了

@Inherited:被他修饰的注解将具有继承性。

如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值