认识Lombok
先来看个例子:
@Data
@AllArgsConstructor
public class UserDO {
@NonNull
private Integer id;
private String userName;
private String userPassword;
public static void main(String[] args) {
UserDO user = new UserDO(1,"userName","userPassword");
System.out.println(user.toString());
}
}
让我们run一下:
#idea
UserDO(id=1, userName=userName, userPassword=userPassword)
是不是很神奇,让我再看下神奇的事情。
是不是好像明白了啥?对的,Lombok就是干这事的。@Data、@AllArgsConstructor就是幕后黑手。
整个类等价于:
public class UserDO {
private Integer id;
private String userName;
private String userPassword;
public UserDO(Integer id, String userName, String userPassword) {
this.id = id;
this.userName = userName;
this.userPassword = userPassword;
}
protected boolean canEqual(Object other) {
return other instanceof UserDO;
}
@Override
public boolean equals(Object o) {
//equals
}
@Override
public int hashCode() {
//hashCode
}
@Override
public String toString() {
return "UserDO{" +
"id=" + id +
", userName='" + userName + '\'' +
", userPassword='" + userPassword + '\'' +
'}';
}
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 getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public static void main(String[] args) {
UserDO user = new UserDO(1, "userName", "userPassword");
System.out.println(user.toString());
}
}
我们在web项目中常用的DO、DTO、VO等一系列经常需要自动生成一些get/set方法、构造函数的,都可以通过lombok的注解简化使用,非常的快捷方便。
其他功能
lombok除了@Data以外还有还有很多其他功能,都可以通过注解来实现:
看不清可以保存下来看。
学习资源
lombok本身非常简单,而且官网资料也非常齐全,看一遍跑一遍例子就完全掌握了,因此非常推荐看官网。当然你百度一下也能发现很多搬官网例子的博客,看英文不舒服的可以参考下。