首页 > TAG信息列表 > JCTree
用了那么久的Lombok,你知道它的原理么?
简介: 在写Java代码的时候,最烦写setter/getter方法,自从有了Lombok插件不用再写那些方法之后,感觉再也回不去了,那你们是否好奇过Lombok是怎么把setter/getter方法给你加上去的呢?有的同学说我们Java引入Lombok之后会污染依赖包,那我们可不可以自己写一个工具来代替Lombok呢? 作者 |编译时注解
很早之前我便会了使用编译时注解生成新的文件,类似安卓中黄油刀等,但是我的目标不是生成新的类,而是在编译时修改字节码做出类似Lombok那样的插件最近抽空找了一些资料终于写出了自己的编译时字节码修改注解 参考:https://liuyehcf.github.io/2018/02/02/Java-JSR-269-%E6%8F%92%从Lombok到JSR-269
前言 Lombok的出现帮助开发人员在开发工程中消除了大部分冗余代码:繁琐的get、set方法甚至建造者模式。 Lombok的实现方式是什么呢? 新建一个测试类使用Lombok的Getter和Setter注解,通过IDEA进行编译 import lombok.Getter; import lombok.Setter; @Getter @Setter public class Usjava AST JCTree简要分析
JCTree简要分析 [toc] JCAnnotatedType 被注解的泛型:(注解的Target为ElementType.TYPE_USE时可注解泛型) public static class A<T extends @Reality String> { } JCAnnotatedType @Reality() String annotations (List<JCTree.JCAnnotation>) [0] = (JCAnnotation) @Realitylombok自定义扩展实践
lombok是一款能够在java代码编译阶段改变代码的插件。比如生成setter和getter方法,生成log类变量等,能够简化一些特定的模版式代码。本文将以实现一个基于特定注解生成日志代码的方式,简单介绍在lombok基础上自定义扩展的方式。 1、实现功能 基于自定义注解,将下面的代码块1变成代码