Lombok的优点与缺点
Lombok的优点与缺点
Lombox的使用
IDE中安装Lombok插件,目前Lombok支持多种IDE,其中包括主流的Eclips、Intellji IDEA、Myeclipse等都是支持的
导入相关依赖,Lombok 支持使用多重构建工具进行导入依赖,目前主要支持maven、gardle、ant等均支持
1
2
3
4
5
6<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>代码中使用注解,Lombok精简代码的方式主要是通过注解来实现,其中常用的有@Data、@Getter/@Setter、@Builder、@NonNull等
1
2
3
4
5
6
7
8
9
10/**
使用@Data注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用。
*/
import lombok.Data;
public class Menu {
private String shopId;
private String skuMenuId;
private String skuName;
}
优点
Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的
缺点
- 强制让同事在IDE中安装对应的插件,更重要的是如果我们定义的一个jar包中使用了Lombok,那么就要求所有依赖这个jar包的所有应用都必须安装插件。
- 代码可读性,可调试性低。因为Lombok会帮忙自动生成很多代码。但是这些代码是要在编译阶段才会生成的,所以在开发的过程中,其实很多代码其实是缺失的
- 盲目使用对自动生成的代码不够了解,Lombok使代码开发非常简便,这就使得部分开发者对其产生过度依赖。如果对于各种注解的底层原理不理解的话,很容易产生意想不到的结果。
- 影响升级,如果在项目中使用了Lombok会导致如果Lombok官方没有及时升级版本到对应的jdk,那么使用Lombok的代码也无法升级到新的jdk版本
- 破坏类的封装性。使用Lombok会自动给类的所有属性加上get和set方法,而面向对象封装的定义是:通过访问权限控制,隐藏内部数据,外部仅能通过类提供的有限的接口访问、修改内部数据。所以,暴露不应该暴露的 setter 方法,明显违反了面向对象的封装特性。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 mutoulazy's space!