在写Java程序的时候常常会遇到以下情形:
新建了一个Class类,而后在其中设置了几个字段,最后还须要花费不少时间来创建getter和setter方法,toString,equals方法等等。特别是当咱们想修改其中一个字段时,关于这个字段的全部方法都须要跟着修改,这是很使人蛋疼的事情,由于毫无技术可言,比搬砖还要难受。html
lombok项目的产生就是为了省去咱们手动建立getter和setter方法的麻烦,它可以在咱们编译源码的时候自动帮咱们生成getter和setter方法。即它最终可以达到的效果是:在源码中没有getter和setter方法,可是在编译生成的字节码文件中有getter和setter方法java
好比源码文件: dom
import java.util.Date; import lombok.Data; @Data public class User { private int id; private String username; private String password; private String name; private String gender; private String phone; private Date registerTime; private int balance; }
如下是编译上述源码文件获得的字节码文件,对其反编译获得的结果 是eclipse
package com.wxhl.cn.domain; import java.util.Date; public class User { public int getId() { return id; } public string getUsername() { return username; } public string getPassword() { return password; } public string getName() { return name; } public string getGender() { return gender; } public string getPhone() { return phone; } public date getRegisterTime() { return registerTime; } public int getBalance() { return balance; } public void setId(int id) { this.id = id; } public void setUsername(string username) { this.username = username; } public void setPassword(string password) { this.password = password; } public void setName(string name) { this.name = name; } public void setGender(string gender) { this.gender = gender; } public void setPhone(string phone) { this.phone = phone; } public void setRegisterTime(date registerTime) { this.registerTime = registerTime; } public void setBalance(int balance) { this.balance = balance; } . . . . . . }
上图后面的代码就不贴了...你们都应该懂。工具
接下来就介绍Lombok的使用步骤:this
①导入lombok包spa
lombok 的官方网址:http://projectlombok.org/ .net
②lombok安装日志
使用 lombok 是须要安装的,若是不安装,IDE 则没法解析 lombok 注解。code
1. 双击下载下来的 JAR 包安装 lombok
我选择这种方式安装的时候提示没有发现任何 IDE,因此我没安装成功,我是手动安装的。若是你想以这种方式安装,请参考官网的视频。
2.eclipse / myeclipse 手动安装 lombok
2.1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下
2.2. 打开 eclipse.ini / myeclipse.ini,在最后面插入如下两行并保存:
-Xbootclasspath/a:lombok.jar
-javaagent:lombok.jar
2.3.重启 eclipse / myeclipse
③、注解
Lombok 注解在线帮助文档:http://projectlombok.org/features/index.
几个经常使用的 lombok 注解:
@Data :注解在类上;提供类全部属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
①Oracle javac直接支持lombok
②经常使用的项目管理工具Maven所使用的java编译工具来源于配置的第三方工具,若是咱们配置这个第三方工具为Oracle javac的话,那么Maven也就直接支持lombok了
③Intellij Idea配置的编译工具为Oracle javac的话,也就直接支持lombok了。
④Eclipse中使用的不是Oracle javac这个编译工具,而是本身实现的Eclipse Compiler for Java (ECJ).要想使ECJ支持lombok,得进行设置,具体是在Eclipse程序目录中的eclipse.ini文件中添加以下两行设置:
-javaagent:[lombok.jar所在路径]
-Xbootclasspath/a:[lombok.jar所在路径]
如今使用Intellij Idea做为Java项目的IDE,配置Oracle javac做为编译工具。
如今有一个A类,其中有一些字段,没有建立它们的setter和getter方法,使用了lombok的@Data注解,另外有一个B类,它调用了A类实例的相应字段的setter和getter方法
编译A类和B类所在的项目,并不会报错,由于最终生成的A类字节码文件中存在相应字段的setter和getter方法
可是,IDE发现B类源代码中所使用的A类实例的setter和getter方法在A类源代码中找不到定义,IDE会认为这是错误
要解决以上这个不是真正错误的错误,能够下载安装Intellij Idea中的"Lombok plugin"。
使用lombok虽然可以省去手动建立setter和getter方法的麻烦,可是却大大下降了源代码文件的可读性和完整性,下降了阅读源代码的温馨度。