前言


想想已经工作了一年,工作中遇到的问题一直没有记录下来,以后遇到相同的问题可能还需要花费很多的时间,因此打算记录一下博客。方便以后自己的复习和问题查找

刚好最近项目引入了Lombok,刚好从现在起记录一下自己的学习与成长

一、Lombok安装


Lombok是一个开源项目,源代码托管在github上,使用的时候需要在maven中引入jar包

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

并且需要在开发工具中安装插件。通过eclipse或idea的插件市场自动安装即可。

还可以通过jar包本地安装:在jar包所在目录打开windows命令行,输入

java -jar lombok-1.16..jar

程序会自动找到eclipse或idea安装目录,点击Install/Update安装即可

二、Lombok注解使用


Lombok常用的注解有

@Getter @Setter @ToString @EqualsAndHashCode @Data @NonNull

其中前4个注解顾名思义即可知道是什么意思,在类上标注后,Lombok即可生成对应的方法

其实我们只需要@Data一个注解即可,它可以生成getter、setter、equals、canEqual、hashCode、toString方法。

使用起来十分方便,也会简化了平时我们的开发

@NonNull :该注解加在属性上,使用该注解可以在对应属性的set方法中判断是否为空,若为空则会抛出空指针异常

虽然提高了编码效率,却存在一个重要的问题,如果我们的类中有继承关系并且使用到equals方法比较的话,最好不要使用Lombok,@Data和@EqualsAndHashCode两个注解所生成的方法只会比较子类的属性,对于父类的属性不会去做比较,因此可能子类属性相同继承下来的属性不相同的两个对象会被判断为相等

三、总结


Lombok虽然帮助我们大大简化了代码,提高了整洁度,但是却降低了可读性,也对继承的特性支持不是很好,某些情况下是可以增加我们的效率,但是建议还是自己编写,毕竟开发工具可以自动生成方法,也不会有多麻烦,并且在equals方法比较的时候也可以高度的自定义。

Lombok使用与问题的更多相关文章

  1. 记录一次bug解决过程:eclipse集成lombok插件

    一 总结 eclipse集成插件lombok: 启动Spring Boot项目: sublime全局搜索关键字:ctrl + shift + F JDK8中的lambda表达式使用 二 BUG描述:集 ...

  2. lombok在IntelliJ IDEA下的使用

    lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码.代码越少,意味着出b ...

  3. lombok 简化java代码注解

    lombok 简化java代码注解 安装lombok插件 以intellij ide为例 File-->Setting-->Plugins-->搜索"lombok plug ...

  4. Lombok 安装、入门 - 消除冗长的 java 代码

    lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码. lombok 的官方网址:http://projectlombok.org/  lombok 安装1. ...

  5. lombok介绍

    Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.在写代码时,可以通过这个插件消除各种getter和setter,toString等常用方法. lombok 注解: ...

  6. Lombok简化Java代码

    导包:import lombok.Data; Lombok简化Java代码: 在Lombok中,生成构造方法的annotation一共有三个:@NoArgsConstructor, @Required ...

  7. myeclipse 手动安装 lombok

    1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下    2. 打开 eclipse.ini / myeclipse.ini,在最后面插 ...

  8. lombok+slf4j+logback SLF4J和Logback日志框架详解

    maven 包依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lomb ...

  9. Java代码简化神器-Lombok

    一.背景 前段时间在开源社区中发现了一个比较牛逼的简化Java代码的神器-Lombok,接着自己写了demo进行测试和练习,感觉真的很不错,特此分享给需要的小伙伴们~ 二.开发之前的准备 1.lomb ...

  10. MyEclipse安装lombok

    1. 将lombok.jar复制到myeclipse.ini所在的文件夹 2. 打开myeclipse.ini,插入以下两行: -Xbootclasspath/a:lombok.jar-javaage ...

随机推荐

  1. Binder学习笔记(十二)—— binder_transaction(...)都干了什么?

    binder_open(...)都干了什么? 在回答binder_transaction(...)之前,还有一些基础设施要去探究,比如binder_open(...),binder_mmap(...) ...

  2. AngularJs 指令 directive中link,controller 的区别

    其实严格来讲,link和controller是完全不同的概念,这里讲区别有点牵强. angular指令中,带有link和controller两个函数,很多人在写指令的时候不知道是写在link里 还是c ...

  3. Leetcode 121. Best Time to Buy and Sell Stock 最佳股票售卖时(动态规划,数组,模拟)

    题目描述 已知一个数组,第i个元素表示第i天股票的价格,你只能进行一次交易(买卖各一次),设计算法找出最大收益 测试样例 Input: [7, 1, 5, 3, 6, 4] Output: 5 最大收 ...

  4. Leetcode 746. Min Cost Climbing Stairs 最小成本爬楼梯 (动态规划)

    题目翻译 有一个楼梯,第i阶用cost[i](非负)表示成本.现在你需要支付这些成本,可以一次走两阶也可以走一阶. 问从地面或者第一阶出发,怎么走成本最小. 测试样例 Input: cost = [1 ...

  5. CF986B Petr and Permutations 思维

    每次交换:逆序对的数量+1或者-1: 假设最后逆序对数量为 sum; ①x+y=3n; ②x-y=sum; -> 3n+sum为偶数: 所以 n 和 sum 必须奇偶一样: #include&l ...

  6. object都有string

    object都有tostringString item=spinner.getSelectedItem().toString();String item01=String.valueOf(spinne ...

  7. springboot整合activemq(三)配置文件

    application.properties文件配置: #服务端口,8080被另一服务占用server.port=9090spring.activemq.broker-url=tcp://127.0. ...

  8. 小程序渲染问题:ios显示安卓不显示

    问题描述: 测试库转到正式库后添加数据,小程序数据渲染不出来,但是测试库没问题,ios数据能显示,没问题,但是安卓显示没数据. 排除是服务器https证书问题,如果是证书问题,小程序会直接调不了接口. ...

  9. redis数据库介绍(NoSql数据库)

  10. hdu2795 Billboard(线段树)

    题意:h*w的木板,放进一些1*L的物品,求每次放空间能容纳且最上边的位子思路:每次找到最大值的位子,然后减去L线段树功能:query:区间求最大值的位子(直接把update的操作在query里做了) ...