有争议的神器——lombok(代码片段)

爱上纯净的蓝天 爱上纯净的蓝天     2023-02-26     284

关键词:

Lombok详解

简介

lombok可以通过简单的注解的形式来帮助我们简化和消除一些必须有但显得很臃肿的Java代码,比如常见的Getter&Setter、toString()、构造函数等等。lombok不仅方便编写,同时也让我们的代码更简洁。

lombok提供了一个功能完整的jar包,可以很方便的与我们的项目进行集成。

maven依赖

以maven项目为例,pom文件中引入:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.20</version>
    <scope>provided</scope>
</dependency>

lombok插件安装

下载lombok.jar, 下载链接,建议下载与项目中依赖的lombok版本一致或者更高。
将下载好的lombok.jar移至eclipse的根目录,和 eclipse.ini 文件平级的。
在lombok.jar 的目录下,运行:

java -jar lombok.jar

  1. 运行后会弹框如下框,直接点确定
  2. 点specify location 按钮,选择eclipse的安装目录,选择到eclipse层即可。
    按如下图步骤点击install即可

  3. 成功后如下图:

    黑框框也多了很多log:

    看看是否真的安装成功,可以在 eclipse.ini 中看看,我的环境是多了一行(-javaagent:D:\\Program Files\\eclipse\\lombok.jar)

    重启eclipse,再clean project。

若是idea,则打开IDEA,选择 file -> settings -> plugins;
在搜索框中输入Lombok plugin,点击install;重启IDEA,安装完成。

** @NonNull**
给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException)。

** @Getter/@Setter**
使用在成员变量或者类上,为特定成员变量/类中所有变量生成Getter/Setter方法。

@ToString
用在类上,可以自动覆写toString方法,当然还可以加其他参数,例如@ToString(exclude=”id”)排除id属性,或者@ToString(callSuper=true, includeFieldNames=true)调用父类的toString方法,包含所有属性。

@EqualsAndHashCode
自动生成hashCode() 和 equals()方法。

@Data
注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor

示例:
使用@Data注释改造下DataDemo,效果如下。需要注意的是使用@RequiredArgsConstrutor生成静态方法需指定staticConstructor的值。

 @Data(staticConstructor = "lombok")
public class DataDemo
      private final String name;
      @Setter(value = AccessLevel.PACKAGE) private int age;
      private double score;
      private String[] tags;

      @ToString(includeFieldNames=true)
      @Data(staticConstructor="of")
      public static class Exercise<T> 
        private final String name;
        private final T value;
      

@Value
用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法,具体示例可以参考@Data部分

@Log
lombok可以快速生成多种常用日志实例,包括Commonslog、log、log4j、slf4j等等,具体的使用可以依照需求灵活选择。

** @Cleanup**
这个注解用在变量前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的close()方法,如果该资源有其它关闭方法,可使用@Cleanup(“methodName”)来指定要调用的方法.
示例:
@Cleanup不仅减少了代码编写,同时也避免了可能的泄露问题,CleanUpDemo的lombok改造效果如下。

public class CleanUpDemo 
  public static void main(String[] args) throws IOException 
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);
    byte[] b = new byte[10000];
    while (true) 
      int r = in.read(b);
      if (r == -1) break;
      out.write(b, 0, r);
    
  

lombok!代码简洁神器还是代码“亚健康”元凶?(代码片段)

作者:树下魅狐来源:ramostear.com/blog/2020/04/28/uk1860p8.html如果您正在阅读此文,想必您对ProjectLombok已经有了一段时间的了解。您是否正准备拥抱Lombok?还是正准备将如此酷炫的项目推荐给你的团队?如果您准备那么... 查看详情

lombok!代码简洁神器还是代码“亚健康”元凶?(代码片段)

我承认,Lombok是一个很不错的Java库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间是用来执行的(你可... 查看详情

easycode和lombok插件的使用,一键生成所需代码(两大代码神器)(代码片段)

📒程序员小王的博客:程序员小王的博客🎉欢迎点赞👍收藏⭐留言📝😊如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕🍅java自学的学习路线:java自... 查看详情

java简化代码神器-lombok

...时间在开源社区中发现了一个比较牛逼的简化Java代码的神器-Lombok,接着自己写了demo进行测试和练习,感觉真的很不错,特此分享给需要的小伙伴们~二、开发之前的准备  1.lombok的官方网站:http://projectlombok.org/    2.lo... 查看详情

java开发神器lombok安装与使用(代码片段)

文章目录安装Idea插件的安装maven中pom文件的导入使用val@Data@Getter/@Setter@Log4j@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode@NonNull@RequiredArgsConstructor@Cleanup@ToString@Value@SneakyThrows@Synchronized@Build... 查看详情

lombok!代码简洁神器还是代码“亚健康”元凶?

文本由微信公众号程序猿DD整理关于Lombok,DD是一个重度用户,从我编写的SpringBoot教程还是SpringCloud教程中,都可以看到几乎每个例子里都有很多地方会用到,尤其是set和get生成,以及构造函数的生成。因为我... 查看详情

lombok效率神奇使用(代码片段)

Lombok效率神器标签(空格分隔):JavaLombok简介及使用Lombok是一种Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO),它通过注释实现这一目的。一个标准的Javabean一般具有若干属性,每个属性具有ge... 查看详情

推荐一款idea代码生成神器,写代码效率翻倍!(代码片段)

Easycode是idea的一个插件,可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码,简单而强大。1、安装(EasyCode)我这里的话是已经那装好了。建议大家在安装一个插件,叫做Lombok。Lombok能通过注解的方式,在编译时自... 查看详情

lombok的使用(代码片段)

...牛批的插件(本质是个Java库),项目里一旦引入了Lombok神器之后,只要程序中使用相关注解,那么你项目中所有诸如:对象的构造函数、 equals()方法,属性的 get()/set()方法等等,这些没有技术含量的代码统统都不用写了... 查看详情

lombok介绍(代码片段)

Lombok是什么Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法.官方地址: https://projectlombok.org/ github地址:&n... 查看详情

lombok简介及使用(代码片段)

lombok简介lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,简单来说,比如我们新建了一个类,然后在其中写了几个字段,然后通常情况下我们需要手动去建立getter和setter方... 查看详情

idea安装lombok插件过程(代码片段)

一、作用Lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然idea和eclipse开发环境下都有自... 查看详情

lombok------让代码更简洁方便(代码片段)

...你很流利的操作快捷键就很方便的了?其实不然,有一个lombok工具可以帮我们自动生成,但不显示在我们的代码中,该怎么用呢? 1.安装lombok的插件,很简单;下载lombok.jar,百度lombok,进入官网下载最新版本,版本太低的话... 查看详情

lombok之使用详解(代码片段)

...使用起来很是方便,其实,我们还有更方便的办法,那就是-Lombok:非常强大的POJO注解器。Lombok是什么?  lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的java代码。 查看详情

java开发效率神器lombok

IDEA安装插件:Maven依赖:<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>Lombok最常用的注解:1.@Ge 查看详情

lombok快速入门(代码片段)

Lombok介绍:Lombok其实就是取名自龙目岛(PulauLombok),龙目岛是印度尼西亚西努沙登加拉(NusaTenggaraBarat)省岛屿,西隔龙目海峡面对巴厘岛,东隔阿拉斯(Alas)海峡面松巴哇(Sumbawa)岛,北濒爪哇海,南临印度洋。在编程上,Lombok是一... 查看详情

lombok踩坑与思考(代码片段)

虽然接触到lombok已经有很长时间,但是大量使用lombok以减少代码编写还是在新团队编写新代码维护老代码中遇到的。我个人并不主张使用lombok,其带来的代价足以抵消其便利,但是由于团队编码风格需要一致,用还是要继续使用... 查看详情

idealombok插件(代码片段)

...clipse更好用?Lombok偶然知道还有Lombok少写代码的这种Coding神器,感觉自己果真是out了,使用其注解能够在我们编译源码的时候自动为我们生成很多Code。  依赖<dependency><groupId>org.pro 查看详情