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 + ")";
        }
    }

}