栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

像@Override这样的注释在Java内部如何工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

像@Override这样的注释在Java内部如何工作?

注释类型之间的第一个主要区别是它们是在编译时使用,然后丢弃(如

@Override
)还是放在已编译的类文件中并在运行时可用(如Spring的
@Component
)。这由注释的@Retention策略确定。如果要编写自己的注释,则需要确定该注释在运行时(可能是用于自动配置)还是仅在编译时(用于检查或代码生成)有用。

在编译带有注释的代码时,编译器会看到注释,就像在源元素上看到其他修饰符一样,例如访问修饰符(

public
/
private
)或
final
。当遇到注释时,它将运行一个注释处理器,就像一个插件类,它对特定的注释感兴趣。注释处理器通常使用Reflection
API来检查正在编译的元素,并且可以简单地对它们进行检查,修改它们或生成要编译的新代码。
@Override
是第一个例子 它使用Reflection
API来确保它可以在其中一个超类中找到方法签名的匹配项,如果不能找到,则使用
Messager
引起编译错误。


有很多关于编写注释处理器的教程。这是一个有用的。期待通过对这些方法的

Processor
接口对于编译器是如何调用注释处理器;
主要操作发生在
process
方法中,每次编译器看到带有匹配注释的元素时,该方法就会被调用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号