java之元注解

 注解的分类

  • 注解一共分为3大类,
  • JDK自带注解
  • 元注解
  • 自定义注解

JDK注解

  1. @Override :用来标识重写方法
  2. @Deprecated标记就表明这个方法已经过时了,但我就要用,别提示我过期
  3. @SuppressWarnings(“deprecation”) 忽略警告
  4. @SafeVarargs jdk1.7出现,堆污染,不常用
  5. @FunctionallInterface jdk1.8出现,配合函数式编程拉姆达表达式,不常用

元注解

  1. @Target 注解用在哪里:类上、方法上、属性上等等
  2. @Retention 注解的生命周期:源文件中、字节码文件中、运行中
  3. @Inherited 允许子注解继承
  4. @Documented 生成javadoc时会包含注解,不常用
  5. @Repeatable注解为可重复类型注解,可以在同一个地方多次使用,不常用

 @Target ElementType

  1. ElementType.TYPE 应用于类的元素
  2. ElementType.METHOD 应用于方法级
  3. ElementType.FIELD 应用于字段或属性(成员变量)
  4. ElementType.ANNOTATION_TYPE 应用于注解类型
  5. ElementType.CONSTRUCTOR 应用于构造函数
  6. ElementType.LOCAL_VARIABLE 应用于局部变量
  7. ElementType.PACKAGE 应用于包声明
  8. ElementType.PARAMETER 应用于方法的参数

@Retention RetentionPolicy

  • 该注解定义了自定义注解被保留的时间长短,比如某些注解仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中; 编译在class文件中的注解可能会被虚拟机忽略,而另一些在class被装载时将被读取。
  • 为何要分字节码文件中有还是没有呢?如果没有时,反射技术就拿不到,从而就无法去识别处理。它的值一共3种:
  1. SOURCE 在源文件中有效(即源文件保留)
  2. CLASS 在class文件中有效(即class保留)
  3. RUNTIME 在运行时有效(即运行时保留)

 自定义注解

  • 注意:注解的语法写法和常规java的语法写法不同

  • 通过@Target注解标记自定义注解的使用位置

  • 通过元注解@Target规定自定义注解可以使用的位置

  • 我们使用"ElementType.静态常量"的方式来指定自定义注解具体可以加在什么位置

  •  而且,值可以写多个,格式:@Target({ElementType.XXX,ElementType.XXX}*/

  • @Target({ElementType.METHOD,ElementType.TYPE})//可以加在方法&类上

  • 通过@Retention注解标记自定义注解的生命周期

  • .通过元注解@Retention规则自定义注解的生命周期

  • *我们使用"RetentionPolicy.静态常量"的方式来指定自定义注解的生命周期

  • 注意:值只能写一个:SOURCE CLASS RUNTIME 3选1 */

  • @Retention(RetentionPolicy.RUNTIME)//到运行时都有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值