Lombok 简要介绍

背景

最近因为项目使用到了lombok,然后自己做了一个PPT。总结了一部分知识。现在将PPT的内容抽取出来作为一篇博客。

基本介绍

Lombok可以减少JOPO对象的一些代码编写。如下面的对象,这种get和set方法主要是面向对象为了封装。但是其实也没做什么特别的事情。这种代码其实可以简洁一点。
这里写图片描述
使用Lombok后代码就会如下:
这里写图片描述
这样代码看起来就简洁了很多了。而且Lombok的功能还是比较强大的。有挺多的注解给我们使用,来帮助我们减少一些代码的编写。
常用的注解如下:

@Getter
@Setter
@ToString
@NotNull
@Data
@EqualAndHashCode
@NoArgsConstructor
@AllArgsConstructor

高级注解如下:

@CleanUp
@Synchronized
@SneakyThrows
@Log
@Slf4j
等效代码
@CleanUp
public void testCleanUp(){
    try{
        @CleanUp ByteArrayOutputStream baos =new ByteArrayOutputStream();
        System.out.println(baos.toString());
    }
}

等同于

public void testCleanUp(){
    try{
     // 代码
    }finally{
        baos.close();
    }
}

@CleanUp 对自动添加上对流的关闭操作

原理

自从Java6起,Javac就支持了”JSR 269 Pluggable Annotation Processing” API 规范,只要
程序实现了该API,就能在Javac运行的时候得到调用
1.Javac对源代码进行分析,生成一颗抽象语法树(AST)
2.运行过程中调用实现了”JSR 269 API”的 某 程序
3.此时某程序就可以完成自己的逻辑,包括修改第一步骤得到的抽象语法树
4.Javac使用修改后的抽象语法树(AST)生成字节码文件
这里写图片描述

总结

Lombok的原理很简单,就是在java编译器build的时候,lombok的解析器会去扫描代码,找出添加过注解的代码然后修改抽象语法树,然后剩下的事情由编译器继续做。所以我们的代码,在编译后在class文件里面就已经可以看到lombok给我们动态添加的代码了。

参考链接

Lombok 官网:https://www.projectlombok.org/
lombok介绍:https://yq.aliyun.com/articles/59972
https://www.cnblogs.com/tabCtrlShift/p/9076559.html
https://www.e-learn.cn/content/java/1007833

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lombok是一个可以通过简单的注解形式来简化Java代码的工具。它可以帮助我们消除一些必须有但显得很臃肿的代码,比如getter和setter方法。使用Lombok的注解,可以在编译源码的时候自动生成对应的方法。\[1\] 在使用Lombok注解之前,需要导入Lombok的Maven包。如果使用Maven项目,需要在pom.xml文件中添加Lombok的依赖。同时,在IDEA中也需要添加对Lombok的支持。可以通过安装Lombok插件来实现,在IDEA中的File→Setting→Plugins中搜索Lombok,点击install完成后重启IDEA即可。\[2\]\[3\] 使用Lombok的步骤如下: 1. 导入Lombok的Maven包或添加依赖到pom.xml文件。 2. 在Java类中使用Lombok的注解,比如@Getter和@Setter注解。 3. 编译源码,Lombok会自动生成对应的方法,比如getter和setter方法。 举个例子,如果我们有一个User类,可以使用Lombok的注解来简化代码: ```java @Getter @Setter public class User implements Serializable { private Long userId; private String userAccount; private String userPassword; // 其他属性省略... } ``` 上述代码中,使用了@Getter和@Setter注解,它们会自动生成对应的getter和setter方法。这样就可以省去手动编写这些方法的步骤,提高了代码的简洁性和可读性。\[3\] 总结来说,使用Lombok可以通过简单的注解来简化Java代码,减少冗余的getter和setter方法的编写。通过导入Lombok的Maven包或添加依赖,并在Java类中使用Lombok的注解,可以在编译源码时自动生成对应的方法。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Lombok在idea中的使用](https://blog.csdn.net/qq_45694568/article/details/120798565)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [七、IDEA中Lombok的使用](https://blog.csdn.net/weixin_42171159/article/details/125824145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Idea下如何使用Lombok](https://blog.csdn.net/huaidandaidai1/article/details/102652341)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值