一、Lombok概述
Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.
Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发,通过添加注解的方式,不需要为类编写getter或setter方法等等。
未使用lombok
代码示例
package cn.com.example18;
public class User {
private Integer id;
private String username;
private String password;
public User(){}
public User(Integer id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + ''' +
", password='" + password + ''' +
'}';
}
}
反编译
Compiled from "User.java"
public class cn.com.example18.User {
public cn.com.example18.User();
public cn.com.example18.User(java.lang.Integer, java.lang.String, java.lang.String);
public java.lang.Integer getId();
public void setId(java.lang.Integer);
public java.lang.String getUsername();
public void setUsername(java.lang.String);
public java.lang.String getPassword();
public void setPassword(java.lang.String);
public java.lang.String toString();
public static void main(java.lang.String[]);
}
使用lombok
代码示例
package cn.com.example18;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
private Integer id;
private String username;
private String password;
}
反编译
Compiled from "User.java"
public class cn.com.example18.User {
public static void main(java.lang.String[]);
public java.lang.Integer getId();
public java.lang.String getUsername();
public java.lang.String getPassword();
public void setId(java.lang.Integer);
public void setUsername(java.lang.String);
public void setPassword(java.lang.String);
public boolean equals(java.lang.Object);
protected boolean canEqual(java.lang.Object);
public int hashCode();
public cn.com.example18.User();
public cn.com.example18.User(java.lang.Integer, java.lang.String, java.lang.String);
public java.lang.String toString();
}
二、Lombok使用
使用Lombok,需要导入相应的jar包以及在idea中下载插件并配置
1、导入jar包
# 导入jar包
lombok-1.18.12.jar
2、下载插件
在idea中下载lombok插件

3、配置
在idea中开启注解,否则lombok无法使用,idea不能正常解析
勾选Enable annotation processing

4、使用
注解 | 说明 |
---|---|
@Data | 注解在类上,生成setter、getter、equals、hashCode、toString |
@Setter | 注解在类或属性,生成setter,在类上,生成所有属性的setter,在属性上,只对该属性生成setter |
@Getter | 注解在类或属性,生成getter,在类上,生成所有属性的getter,在属性上,只对该属性生成getter |
@ToString | 注解在类上,添加toString方法 |
@EqualsAndHashCode | 注解在类上,生成equals和hashCode方法 |
@NoArgsConstructor | 注解在类上,生成无参构造器 |
@AllArgsConstructor | 注解在类上,生成有参构造器 |
@Slf4j | 注解在类上,生成log变量,private static final Logger log = LoggerFactory.getLogger(User.class); |
代码示例
package cn.com.example18;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User1 {
private Integer id;
private String username;
private String password;
public static void main(String[] args) {
new User1();
}
}
原文始发于微信公众号(数字游民PG):为什么要放弃Lombok?
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/174031.html