注解(Annotation),也叫元数据,标签,注释。注解叫注释的时候,容易和java的代码注释混淆,一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
1. 注解是开发中的利器,可以使得代码更加的简洁,逻辑更加清爽
2. 以后能用别人的注解,能够理解注解
\. 经常会看别人代码,或者使用框架,都会就有很多注解,如果不同注解无法看别人代码和使用框架
4. 自己想要成为架构师,【想要深入学习注解 】可以在别人的注解及三方程序上面学习,写自己的东西
5. 可以让别人觉得你的技术还算不错,NB, 见过一些东西(自定义注解);
6. 我们的目标:能理解注解,将来会用别人写好的注解
7. 反射,注解,线程 --不管用不用,都是必须学的;
@注解的名称
@Override
1.编写文档:事实上,在Java中我们可以通过注解去生成API文档,例如我们常见的参数值【@parameter】,返回值【@return】等,只有标识了这些,我们才能通过API文档更快速和有条理的查看到对应的相关信息
导出含有注解的API文档:
1.选中项目/代码,右键选中Export
2.Java下的Javadoc命令
3.Javadoc Generation中配置javadoc.exe【javadoc.exe在JDK环境中】
4.不做任何修改next
5.如果是UTF-8编码,且有中文,请输入-encoding UTF-8 -charset UTF-8 Finish
2.代码分析:通过代码里标识的元数据对代码进行分析【使用反射】(可以通过反射 看这个类有没有注解,有注解的时候,代码应该怎么写,没有注解的时候,应该怎么写)
3.编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】(如果一个代码,添加一个注解,会帮我们检查是不是正确;)
1.需要有一个注解; 定义注解
2.使用这个注解(这个注解贴在什么地方);打注解
3.第三方程序为注解实现功能; 处理注解(实现一定功能)
JDK元注解
@Target作用
用于描述注解的使用范围,也就是说使用了@Target去定义一个注解,那么可以决定定义好的注解能用在什么地方
@Target取值
@Target的取值使用ElementType,ElementType的相关说明可以通过JDK文档查询,也可以直接查看其源码
@Retention作用
用于描述注解的生命周期,也就是说这个注解在什么范围内有效,注解的生命周期和三个阶段有关:源代码阶段、CLASS文件中有效、运行时有效,故其取值也就三个值,分别代表着三个阶段
@Retention取值
@Retention的取值适用RetentionPoicy,RetentionPoicy的相关说明可以通过JDK文档查询,也可以通过查看源码
@Documented作用
使用@Documented定义后的注解,在该注解使用后,如果导出API文档,会将该注解相关的信息可以被例如javadoc此类的工具文档化。
@Inherited作用
使用@Inherited定义的注解具备继承性
语法
元注解
public @interface 注解名{
类型 属性名() default 默认值; //default可以不写
}
使用注解
@注解名(属性名=”值”)
@注解名(属性名={”值1”,”值2”}) //注解类型为数组
写在最后:注解概念了解即可,真实项目开发基本都以实际运用为主。笔者小,中,大厂均有面试经验,坚持每日分享JAVA全栈知识,希望能够与大家共同进步。