Java中的注解到底是如何工作的?

什么是注解
注解是在Java5.0版本中被引入java中webapi是什么,其目的是用于描述数据,我们可以把他当作标签,每加上一个注解就相当于给类/方法/字段贴上来标签,而标签的作用我们很明白,通过标签我们可以知道这个类/方法/字段是做什么的 。
为什么使用注解
在程序开发中,如果我们看到@,我们是很容易理解它的作用就是对实现方法的重写,而这也达到设计之初的目标 , 即描述数据 。
继续以为例子,我们在实现父类方法的时候通常会带上该注解java中webapi是什么,但是我们不带也不会对运行有任何影响,但是如果我们把注解放到非实现的方法上,编译就会报错 。也就是说注解会告诉编译我是做什么的,如果我做的和预期不一样,那么编译器会对我们程序进行纠错,即对不合注解含义的业务进行处理(这个处理不是注解去处理,只是看上去像是注解的作用) 。

Java中的注解到底是如何工作的?

文章插图
Java中的注解到底是如何工作的?

文章插图
注解如何工作
对于@使用在非父类方法上编译报错的情况 , 我们最初接触的时候可能会认为这些报错的作用是注解的作用,但是实际上并不全是 , 这是因为注解仅仅是标签亦或者说是元数据 。他的作用一开始仅仅是为类描述数据,而后衍生出来的各种功能是由前端编译器在编译成class的时候会有一个专门的注解处理器,是他在编译过程中对诸多注解,如@,会有专门的代码完成@标志的业务逻辑 。简单的说 , 注解只是标签,而标签具有的功能是由前端编译器
【Java中的注解到底是如何工作的?】在生成语法树之后有专门的代码去实现 。
如果我们有使用自定义注解的经验,我们会发现如果我们单单定义一个注解放在类/方法/字段上,那么它只有一个标签的效果,并没有什么实际的意义,比如我们自定义注解 , 表达不能为空,我们将其注解加入到字段上,即使传空也没有任何问题,这是因为没有相应业务的支持 。如果想要达到想要的效果,我们就需要专门写业务逻辑去实现这个功能
希望我的回答能对您有所帮助 。
本文到此结束,希望对大家有所帮助 。