一文搞懂注解

**## 一:什么是注解?

1. Annotation(注解)是从JDK5.0开始引入的新技术
2. Annotation的作用:不是程序本身,可以对程序作出解释(这一点和注释(comment)没有区别),可以被其他程序(比如编译器等)读取
3. Annotation的格式:注解是以"@注释名"在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value=“unchecked”)
4. Annotation在哪里使用:可以附加在package(包),class(类),method(方法),field(属性),
接口等上面,相当于给他们添加了一个额外的辅助信息,我们可以通过反射机制变成实现对这些元数据的访问

**二:内置注解

@Override:表示当前的方法定义将覆盖基类的方法。如果你不小心拼写错误,或者方法签名被错误拼写的时候,编译器就会发出错误提示。
在这里插入图片描述
@Deprecated:如果使用该注解的元素被调用,编译器就会发出警告信息。
在这里插入图片描述
@SuppressWarnings:关闭不当的编译器警告信息。通常取值有all/uncheaked/unchecked,deprecation
在这里插入图片描述
@SafeVarargs:在 Java 7 中加入用于禁止对具有泛型varargs参数的方法或构造函数的调用方发出警告。
@FunctionalInterface:Java 8 中加入用于表示类型声明为函数式接口

三:原注解

作用:负责注解其他注解
四个标准的meta-annotation类型

**1.@Target:描述注解的使用范围
实例如下:
在这里插入图片描述
其他参数如下
TYPE:类、接口(包括注释类型)或enum声明
FIELD:属性a
METHOD:方法声明
PARAMETER:正式的参数声明
CONSTRUCTOR:构造函数声明
LOCAL_VARIABLE:局部变量声明
ANNOTATION_TYPE:注解类型声明
PACKAGE:包
**
2.@Retention:标识需要在什么级别保存该注释信息,永固描述注解的生命周期
SOURCE(源代码)<CLASS()<RUNTIME(运行时有用,常用)
3.@Document:说明该注解将包含在javadoc中,文档注释
4.@Inherited:说明子类可以继承父类中的该注解

四:自定义注解来演示元注解的作用

其实很简单,常用的元注解@Target表示的就是你定义的这个注解可以什么上面,例如可以定义放在属性或方法上,他是数组,可以定义放在属性和方法上等,而@Retention则表示自定义的这个注解上面时候有效,通常都是设置为RUNTIME(运行时有效),注意观察下面的语法,当你的参数名是value时,在使用注解是value是可以默认不写的,而像name这种使用时就必须写参数名,default则是设置默认的值
在这里插入图片描述

五:反射操作操作注解

在这里插入图片描述

**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值