爆资讯爆资讯爆资讯

Java注解-注解绝对是一个不容忽视的存在

一、背景

今天用idea学习lombok时遇到一个问题,注解@Getter @Setter 编译通过通过struct视图也可以看到动态添加的 方法,但是运行时就会提示方法不存在。开始以为是依赖引入时机不对,调整后还是没有效果。百度一下需要这么操作:

Java注解-注解绝对是一个不容忽视的存在

idea设置AnnotationProcessors

在gradle中添加lmobok的依赖

Java注解-注解绝对是一个不容忽视的存在

lombok依赖

作为常年使用eclipse的我觉得有必要搞搞清楚idea的这个AnnotionProcessor是个什么鬼东西了。

二、Java注解脑图Java注解-注解绝对是一个不容忽视的存在

注解脑图(此图来自互联网)

三、AnnotionProcessor

首先并不是idea创造的东西,而是java提供的编译时注解处理机制。两种编译时解析方案1. APT(Annotation Processing Tool)2. Pluggable Annotation Processing API

2.1、APT

apt自JDK5产生,JDK7已标记为过期、不推荐使用,JDK8中已彻底删除,自JDK6开始,可以使用Pluggable Annotation Processing API来替换它,Apt被替换主要有2点原因:

api都在com.sun.mirror非标准包下没有集成到javac中,需要额外运行Apt的更多介绍可以参见这里https://docs.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html2.2、Pluggable Annotation Processing API

JSR 269,自JDK6加入,作为apt的替代方案,它解决了apt的两个问题,javac在执行的时候会调用实现了该API的程序,这样我们就可以对编译器做一些增强,这时javac执行的过程如下:

Java注解-注解绝对是一个不容忽视的存在

未经允许不得转载:爆资讯 » Java注解-注解绝对是一个不容忽视的存在

相关推荐