@Override注解是在什么时候被使用的?

@Override 注解是什么时候进行检测的?是被谁使用的?
IDE代码编辑器(Eclipse,IntelliJ IDEA,Android Studio等)都是如何实现代码错误实时检测的呢?
我们在编写代码的时候并没有进行编译,但如果@Override 注解标注在了一个并没有重写父类的某个方法的方法上,IDE就能实时检测出错误并提示,如何做到的呢?

编写代码时,如果某个方法不是重写父类的方法,但是用 @Override注解标注了,Android Studio会立马提示错误:Method does not override method from its superclass,但是这时候我并没有编译项目啊,注解处理器如何发现这个错误的,难道是Android Studio在检测这个注解而不是注解处理器在使用这个注解?如果是注解处理器在使用这个注解,那么这个注解是哪个注解处理器在使用的呢?

《深入了解Java虚拟机》中的内容,javac编译的详解过程,编译过程大致上分为三步:解析与填充符号表过程、插入式注解处理器的注解处理过程、分析与字节码生成过程。
在这里插入图片描述
(1)词法、语法分析
(2)符号填充表
(3)注解处理器
(4)语义分析与字节码生成

IDE(idea,android studio, eclipse等)的内置插件会调用javac进行预编译的过程,这个过程会进行代码的词法、语法分析检查,即按照编写好的规则,检查开发者写的代码是否符合语法规范,以及注解处理器会分析一些jdk内置的注解,只不过这个javac预编译过程只做了上图中javac编译过程的前面几步,没有进行最后的 字节码生成 的工作,因此不会生成字节码。

参考:
什么时候使用Java的@Override注释,为什么?
IntelliJ IDEA代码检查
IDE是如何实时报告代码错误的?

关于java编译时注解你需要知道的二三事。解除你的顾虑!

@Override 注解是Android Studio还是注解处理器进行处理的?

Javac编译器详解

@Override 注解是Android Studio还是注解处理器进行处理的?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值