Lombok
Lombok项目是一个Java库,通过注解,来消除Java类中的大量样板代码。比如常见的Getter&Setter、toString()、构造函数等等。
看个例子,以前我们构建一个java是实体类的做法,
public class Entity {private int id; private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;} }
每个实体类都有着get和set方法,可能还要加上构造方法、equals、hash等方法,这些代码就是上述所说的样板代码。那么Lombok是怎么做的呢,如下,
@Datapublic class Entity {private int id; private String name; }
我们看下生成了什么方法,本人使用的eclipse,ctrl+o 查看就行了。
是不是都有了。你可以去看下Lombok包下面,还有很多的注解使用。除了类上,再多说几个例子,感受下它的魅力。
@NonNull:可以用来避免空指针,比如构造方法的入参。
public Entity(int id, @NonNull String name) {this.id = id;this.name = name;}
@Cleanup:通常用于流的关闭作用,如
@Cleanup FileInputStream inStream = new FileInputStream(in);
@AllArgsConstructor:生成全参构造函数。
。。。。。。。
哇!太方便了,以后项目都用它了!
建议点
上面说了Lombok的优势,确实帮我们平常开发节省了很多代码。但是每个东西的存在必然是双面的,不存在完美的说话。
1、Lombok的使用是必须要安装插件的,如果有一个同事使用了Lombok并安装了插件,那不好意思,其他的同事你得必须要安装,要不然你拉取代码 run就报错,编译失败。
2、作为分布式项目,如果有一个项目中使用了Lombok打成jar包供其他的项目去使用,那你其他的项目也得安装Lombok插件,对项目的侵入性高。
3、Lombok给我们生成的set和get等方法是在编译阶段才给生成的,在开发过程中有代码的缺失,可能查找问题不是很方便。
4、JDK的升级,如果出现的特性在Lombok中不支持,那会有影响的,所以不要使用了Lombok的不要盲目的升级 JDK。
。。。。你们还有遇到什么其他的问题吗
上面总结了Lombok的优缺点,使用上方便了,并不能说明没有问题存在。
所以在项目的开发过程中,我不是不推荐大家使用,最重要的是要去评估它带来的问题,可以的话就去用吧。