Java 注解Annotation

1,注解是什么?

注解是一个接口
1,程序通过反射来获取指定程序元素的Annotation对象
2,通过Annotation对象取得注解里的元数据

2,为什么要用注解

1,对于框架而言,简化程序中的配置,
2,编译检查
3,生成帮助文档

3,常用注解有哪些,作用是什么?

在这里插入图片描述

@Override

重写父类方法
@Override 只能修饰方法, 不能修饰其他程序元素。

在这里插入图片描述
@Deprecated

程序(类、方法)己过时,当其他程序使用己过时的类、方法时, 编译器将会给出警告。

在这里插入图片描述
@SuppressWarnings

关闭编译器警告

在这里插入图片描述
@SafeVarargs

抑制堆污染警告
当把一个不带泛型的对象赋给一个带泛型的变量时,往往就会发生这种"堆污染",如下:

在这里插入图片描述

4, JDK 的元注解

@Retention

用于修饰注解定义,用于指定被修饰的注解可以保留多长时间
RetentionPolicy.CLASS: 编译器将把注解记录在 class 文件中 。 当运行 Java 程序时, NM 不可 获取注解信息。
RetentionPolicy.RUNTIME: 编译器将把注解记录在class 文件中 。 当运行 Java 程序时, NM 也 可获取注解信息, 程序可以通过反射获取该注解信息。
RetentionPolicy.SOURCE: 注解只保留在源代码中,编译器直接丢弃这种注解。

//定义下面的@Testable 注解保留到运行时 
@Retention(value= RetentionPolicy.RUNTIMEl)
public @interface Testable{ } 

@Target

修饰注解定义,它用于指定被修饰的注解能用于修饰哪些程序单元。

在这里插入图片描述
@Documented

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

@Retention(RetentionPolicy.RUNTIME ) 
@Target(ElementType.METHOD) //定义 Testable 注解将被 javadoc 工具提取 
@Documented 
public @interface Testable {}

@Inherited

指定被它修饰的注解将具有继承性一一如果某个类使用了@Xxx 注解(定义该注 解时使用了@Inherited
修饰)修饰,则其子类将自动被@Xxx 修饰

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值