04-Lombok
1. 注解
@Getter // get()
@Setter // set()
@ToString // toString()
@EqualsAndHashCode // equals(), hashCode()
@NoArgsConstructor // Ooxx()
@AllArgsConstructor // Ooxx(全参),Ooxx()不再自动生成
@Data // get(), set(), equals(), hashCode(), toString()
@Builder // builder(), Ooxx(全参), OoxxBuilder内部类
2. 基本Class使用
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Ooxx {
}
3. @Builder
@Builder
必须Ooxx(AllArgs)
不再生成Ooxx()
,@NoArgsConstructor
生成Ooxx()
,不生成Ooxx(AllArgs)
- 因此
@Builder
、@NoArgsConstructor
、@AllArgsConstructor
都要加上
public class Ooxx {
private String name;
private int age;
// build()使用Ooxx(AllArgs),Ooxx()不再生成
Ooxx(String name, int age) {
this.name = name;
this.age = age;
}
public static Ooxx.OoxxBuilder builder() {
return new Ooxx.OoxxBuilder();
}
// OoxxBuilder,static内部类
public static class OoxxBuilder {
private String name;
private int age;
OoxxBuilder() {
}
public Ooxx.OoxxBuilder name(String name) {
this.name = name;
return this;
}
public Ooxx.OoxxBuilder age(int age) {
this.age = age;
return this;
}
// Ooxx(AllArgs)
public Ooxx build() {
return new Ooxx(this.name, this.age);
}
public String toString() {
return "Ooxx.OoxxBuilder(name=" + this.name + ", age=" + this.age + ")";
}
}
}