Lombok - 消除冗长的 java 代码
前言:
逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下。
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:注解在类上;为类提供一个全参的构造方法
下面是简单示例
1.不使用 lombok 的方案

2
public class Person {3

4
private String id;5
private String name;6
private String identity;7
private Logger log = Logger.getLogger(Person.class);8
9
public Person() {10
11
}12
13
public Person(String id, String name, String identity) {14
this.id = id;15
this.name = name;16
this.identity = identity;17
}18
19
public String getId() {20
return id;21
}22
23
public String getName() {24
return name;25
}26
27
public String getIdentity() {28
return identity;29
}30
31
public void setId(String id) {32
this.id = id;33
}34
35
public void setName(String name) {36
this.name = name;37
}38
39
public void setIdentity(String identity) {40
this.identity = identity;41
}42
}43

2.使用 lombok 的方案

2
@Data3
@Log4j4
@NoArgsConstructor5
@AllArgsConstructor6
public class Person {7

8
private String id;9
private String name;10
private String identity;11
12
}13

上面的两个 java 类,从作用上来看,它们的效果是一样的,相比较之下,很明显,使用 lombok 要简洁许多,特别是在类的属性较多的情况下,
同时也避免了修改字段名字时候忘记修改方法名所犯的低级错误。最后需要注意的是,在使用 lombok 注解的时候记得要导入 lombok.jar 包到工程
Lombok - 消除冗长的 java 代码的更多相关文章
- 八:Lombok 安装、入门 - 消除冗长的 java 代码
Lombok 安装.入门 - 消除冗长的 java 代码 前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下. lombok 提供了简单的注解的形式来帮助我们简化消 ...
- Lombok 安装、入门 - 消除冗长的 java 代码
lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码. lombok 的官方网址:http://projectlombok.org/ lombok 安装1. ...
- Lombok 安装、入门 - 消除冗长的 java 代码(转)
前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下. lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码.特别是相对于 ...
- 【转】Lombok 安装、入门 - 消除冗长的 java 代码
前言: 逛开源社区的时候无意发现的,用了一段时间,觉得还可以,特此推荐一下. lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码.特别是相对于 ...
- Lombok : 让你写 Java代码像C#一样爽
前言 我曾经是一名 .Net 开发,如今的我是一名 Java 开发者.在我享受着 Java 成熟的生态时,我常常怀念 c# 简洁的语法:自动属性.类型推断.自动初始化器 .... 鱼,我所欲也,熊掌亦 ...
- Spring Boot中使用Lombok消除POJO类模板代码
首先,要让IDE支持Lombok,这里以idea为例进行介绍. 点击项目的“File”-—>"settings"—>"Plugins",在marke ...
- IDEA里面添加lombok插件,编写简略风格Java代码
在 java平台上,lombok 提供了简单的注解的形式来帮助我们消除一些必须有但看起来很臃肿的代码, 比如属性的get/set,及对象的toString等方法,特别是相对于 POJO; 关于lomb ...
- IDEAL葵花宝典:java代码开发规范插件 lombok 插件
前言: lombok简介: lombok是暑假来到公司实习的时候发现的一个非常好用的小工具,刚见到的时候就感觉非常惊艳,有一种相见恨晚的感觉,用了一段时间之后感觉的确挺不错,所以特此来推荐一下. 那么 ...
- 【译】利用Lombok消除重复代码
当你在写Getter和Setter时,一定无数次的想过,为什么会有POJO这么烂的东西.你不是一个人!(不是骂人-)无数的开发人员花费了大量的时间来写这种样板代码,而他们本来可以利用这些时间做出更有价 ...
随机推荐
- HDU 4462
http://acm.hdu.edu.cn/showproblem.php?pid=4462 一道题意不清的水题 题意:给一个n*n的格子,在上面放草人,每个草人有恐惧范围,问最少选择几个草人可以覆盖 ...
- 【avalon源码】scpCompile
function noop() {} function scpCompile(array) { return Function.apply(noop, array) } // var fn = new ...
- sass中mixin常用的CSS3
圆角border-radius @mixin rounded($radius){ -webkit-border-radius: $radius; -moz-border-radius: $radius ...
- AC自动机 专题
// 求目标串中出现了几个模式串 //==================== #include <stdio.h> #include <algorithm> #include ...
- 让Grub 2来拯救你的 bootloader
没有什么事情比 bootloader 坏掉更气人的了,充分发挥 Grub 2 的作用,让 bootloader 安分工作吧.为什么这么说? Grub 2 是最受欢迎的 bootloader ,几乎用在 ...
- Linux下删除乱码或特殊字符文件
今天遇到一个问题,一个文件名是“-MXV9.log”,直接用rm删除的时候就报错,如下: [localhost]rm -MXV9.log rm: illegal option -- M rm: ill ...
- SQLITE SUBSTR
insert into t_user values(4,'u1234567890'); sqlite> select substr(username,1,1) from t_user where ...
- 软件工程课程作业(二)--四则运算2改进版(c++)
题目要求: 1.避免题目重复 2.可定制(数量/打印方式) 3.可以控制下列参数 (1)是否有乘除法 (2)是否有括号 (3)数值范围 (4)加减有无负数 (5)除法有无余数 关键设计思想: oper ...
- codevs 1704 卡片游戏
题目描述 Description 桌面上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张排时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后.输入n. ...
- Codeforces Round #373 (Div. 1)
Codeforces Round #373 (Div. 1) A. Efim and Strange Grade 题意 给一个长为\(n(n \le 2 \times 10^5)\)的小数,每次可以选 ...