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

今天用到lombok插件,感觉还不错。记录一下

前言:
逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下。
lombok提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。特别是相对于 POJO,光说不做不是我的风格,先来看看吧。

lombok 的官方网址:http://projectlombok.org/

lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而且还有文档可以参考。
在这里我就不扯太多,先来看一下lombok 的安装,其实这个官网视频上也有讲到啦

lombok 安装
使用 lombok 是需要安装的,如果不安装,IDE 则无法解析 lombok 注解。先在官网下载最新版本的 JAR 包,现在是 0.11.2 版本,我用的是 0.11.0
第一次使用的时候我下载的是最新版本的,也就是我现在用的0.11.0,到现在已经更新了两个版本,更新的好快啊 ... ...

1. 双击下载下来的 JAR 包安装lombok
我选择这种方式安装的时候提示没有发现任何 IDE,所以我没安装成功,我是手动安装的。如果你想以这种方式安装,请参考官网的视频。

2.eclipse / myeclipse 手动安装 lombok
1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下
2. 打开 eclipse.ini / myeclipse.ini,在最后面插入以下两行并保存:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
3.重启 eclipse / myeclipse

lombok 注解:
lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。
Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
下面介绍几个我常用的 lombok 注解:
@Data:注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j:注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

@EqualsAndHashCode:实现equals()方法和hashCode()方法

@ToString:实现toString()方法

@Cleanup:关闭流

@Synchronized:对象同步

@SneakyThrows:抛出异常

例子:

@Getter(lazy=true) Laziness is a virtue! @ToString exclude="style"
Lombok会根据field自动生成 toString 方法,这个对调试来说很方便! 这个注解生成的toString格式:

Java代码 收藏代码
  1. LombokUser(id=001,name=wity_lv,email=wity_lv@sample.com)

@EqualsAndHashCode 生成 hashCodeand equals方法. @NoArgsConstructor,@RequiredArgsConstructorand@AllArgsConstructor Constructors made to order: Generates constructors that take no arguments, one argument per final / non-null field, or one argument for every field. @Data All together now: A shortcut for @ToString, @EqualsAndHashCode, @Getteron all fields, and @Setteron all non-final fields, and @RequiredArgsConstructor! @Cleanup Automatic resource management: Call your close()methods safely with no hassle. @Synchronized synchronizeddone right: Don't expose your locks. @SneakyThrows To boldly throw checked exceptions where no one has thrown them before! @Log 支持多种Log工具, 我平时用@Log4j注解 @val Finally! Hassle-free final local variables. @Delegate Don't lose your composition.



下面是简单示例
1.不使用 lombok 的方案
1
2 public class Person {
3
4privateStringid;
5privateStringname;
6privateStringidentity;
7privateLoggerlog=Logger.getLogger(Person.class);
8
9publicPerson(){
10
11}

12
13publicPerson(Stringid,Stringname,Stringidentity){
14this.id =id;
15this.name=name;
16this.identity=identity;
17}

18
19publicStringgetId(){
20returnid;
21}

22
23publicStringgetName(){
24returnname;
25}

26
27publicStringgetIdentity(){
28returnidentity;
29}

30
31publicvoidsetId(Stringid){
32this.id=id;
33}

34
35publicvoidsetName(Stringname){
36this.name=name;
37}

38
39publicvoidsetIdentity(Stringidentity){
40this.identity=identity;
41}

42}

43

2.使用 lombok 的方案
1
2 @Data
3 @Log4j
4 @NoArgsConstructor
5 @AllArgsConstructor
6 public class Person {
7
8privateStringid;
9privateStringname;
10privateStringidentity;
11
12}

13

上面的两个 java 类,从作用上来看,它们的效果是一样的,相比较之下,很明显,使用 lombok 要简洁许多,特别是在类的属性较多的情况下,
同时也避免了修改字段名字时候忘记修改方法名所犯的低级错误。 最后需要注意的是,在使用 lombok 注解的时候记得要导入 lombok.jar 包到工程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值