認識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本身非常簡單,而且官網資料也非常齊全,看一遍跑一遍例子就完全掌握了,因此非常推薦看官網。當然你百度一下也能發現很多搬官網例子的博客,看英文不舒服的可以參考下。