译注:Lombok是一个很老的项目了,也非常实用,但奇怪的是这么多年来似乎一直不温不火。本文只是简单介绍了它的一些基础功能。更多特性可以参考它的官网。
Lombok是一个旨在减少代码开发工作的Java库。本文介绍了如何用它来完成getter/setter方法,构造方法,以及重写equals(),hashCode()和toString()方法。在Java中,一个很简单的类却往往写得特别复杂。如果你没听说过Lombok的话,那它肯定会让你满意的。
Lombok可以帮助Java开发人员完成以下这些事情:
1. 不用再写setter/getter方法了
不用Lombok的话,我们通常都得这么写:
public class Animal {
private String name;
private String gender;
private String species;
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public String getGender(){
return this.gender;
}
public void setGender(String gender){
this.gender = gender;
}
public String getSpecies(){
return this.species;
}
public void setSpecies(String species){
this.species = species;
}
}
这些方法写多了之后,我慢慢开始有点讨厌Java了。
有了Lombok之后:
public class Animal {
@Getter @Setter private String name;
@Getter @Setter private String gender;
@Getter @Setter private String species;
}
日子开始变得滋润多了。
下面还有Lombok其它的一些很棒的特性。
1. 不用再重写toString方法。
可以给类加上@ToString注解,Lombok会自动重写toString方法并打印出类的所有字段。
2. 不用再重写equals和hashCode方法
@EqualsAndHashCode注解可以自动生成这些方法
3. 通过类注解来生成构造方法
@NoArgsConstructor生成一个默认的构造方法
@RequiredArgsConstructor为所有final和非空(译注:带有@NonNull注解)字段生成一个构造方法
@AllArgsConstructor会为所有字段生成一个构造方法
4. @Data是@ToString, @EqualsAndHashCode, @RequiredArgsConstructor, 和@Getter / @Setter这些注解的一个快捷方式。
这些是最常用到的Lombok特性。其它的一些功能可以到它的
项目主页上进行了解。
示例
假设我们有一个类是需要支持序列化的,并且需要一个构造方法。这需要重写equals,hashCode,toString,同时为私有成员变量提供setter/getter方法,并实现一个构造方法。
使用了Lombok
@RequiredArgsConstructor
@ToString
@EqualsAndHashCode
public class Animal {
@Getter @Setter private String name;
@Getter @Setter private String gender;
@Getter @Setter private String species;
}
没有使用Lombok:
public class Animal {
private String name;
private String gender;
private String species;
public Animal(String name, String gender, String species) {
this.name = name;
this.gender = gender;
this.species = species;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public String getGender(){
return this.gender;
}
public void setGender(String gender){
this.gender = gender;
}
public String getSpecies(){
return this.species;
}
public void setSpecies(String species){
this.species = species;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Animal)) return false;
Animal animal = (Animal) o;
if (gender != null ? !gender.equals(animal.gender) : animal.gender != null) return false;
if (name != null ? !name.equals(animal.name) : animal.name != null) return false;
if (species != null ? !species.equals(animal.species) : animal.species != null) return false;
return true;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (gender != null ? gender.hashCode() : 0);
result = 31 * result + (species != null ? species.hashCode() : 0);
return result;
}
@Override
public String toString() {
return Objects.toStringHelper(this) //Using guava library objects toString
.add("name", name)
.add("gender", gender)
.add("species", species)
.toString();
}
}
很多Java开发人员会争辩道,"有加注解的那个工夫,IDE早就把这些代码给生成了!"
我想说的是你没有说到点子上。人们不喜欢Java是因为它的代码里必须要有这些乱七八糟的东西。像Ruby, Groovy, Perl或者别的脚本语言,都比这简单多了。简单即是美,因此Lombok和Java很般配。
原创文章转载请注明出处:
http://it.deepinmind.com
英文原文链接
分享到:
相关推荐
lombok(1.16.18版本)最新包, ... -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar 如果上面的答案均为true,那么恭喜你已经安装成功,否则将缺少的部分添加到相应的位置即可 5、重启eclipse或myeclipse
Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而使您的Java更加生动有趣。 永远不要再写另一个getter或equals方法,带有一个注释的类具有功能全面的生成器,可自动执行日志记录变量等等。 有关...
ProjectLombok:使用Project Lombok生成Java源代码
lombok-1.16.20.jar,可以快速完成javaBean的工具,只需要手动写字段即可,getter和setter方法 它会帮你完成
Maven坐标:org.projectlombok:lombok:1.16.20; 标签:projectlombok、lombok、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中...
Project Lombok 是一个 Java 库,可自动插入您的编辑器并构建工具,为您的 Java 增添趣味。 永远不要再编写另一个 getter 或 equals 方法,通过一个注释,您的类就有一个功能齐全的构建器,自动化您的日志变量等等。...
java-examples-project-lombok Java示例项目Lombok
Maven坐标:org.projectlombok:lombok:1.16.10; 标签:projectlombok、lombok、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中...
Lombok项目是一个Java库,它会自动插入您的编辑器和构建工具中,从而使您的Java更加有趣。 永远不要再编写另一个getter或equals方法,带有一个注释的类具有功能全面的生成器,可自动执行日志记录变量等等。 有关...
Maven坐标:org.projectlombok:lombok:1.16.10; 标签:projectlombok、lombok、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
Maven坐标:org.projectlombok:lombok:1.16.20; 标签:projectlombok、lombok、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
东Lombok:东Lombok项目
lombok简化java代码
lombok是一套可以帮助我们消除冗长java代码的工具包。正常情况下我们写一个Java类的时候都需要写出属性的get/set等方法,虽然现在一些IDE可以自动生成了,但是依旧会给类带来麻烦的感觉,这时候我们使用lombok(注解)...
Lombok 是一个 Java 库,它通过使用注解来消除样板代码(boilerplate code),从而简化 Java 类的开发过程。使用 Lombok 可以让开发者在编写 Java 类时减少冗长的代码,提高代码的可读性和可维护性。 Lombok 提供了...
Spring-Gradle-Lombok:Teste de Spring com Gradle e Lombok
vscode-Lombok概述 一个轻量级扩展,可在Visual Studio Code中支持批注处理要求VS Code(1.21.0版或更高版本) 将Lombok作为依赖项添加到Java项目中(请确保您使用的是最新版本,以避免出现问题!)或安装打开VS ...
1、运行Lombok.jar: Java -jar D:\software\lombok.jar D:\software\lombok.jar这是windows下lombok.jar所在的位置 数秒后将弹出一框,以确认eclipse的安装路径 2、.确认完eclipse的安装路径后,点击install/...
下面看看如何在 IDEA 中如何安装 Lombok: 安装 打开 IDEA 的 Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories” 在输入框输入”lombok”,得到搜索结果,点击安装,然后安装提示...
java编译过的源码