LomBok使用技巧(@AllArgsConstructor @NoArgsConstructor @Builder @Accessors(chain = true) )

Lombok也許好多人都用過@Data註解,就不用寫Getter,Setter了。

----------補加一下

@Accessors(chain = true)   //鏈式set
@RequiredArgsConstructor(staticName = "of")   生成有參數的構造  和@NonNull一起

------------------------------

 

介紹幾個:

@Data //生成Getter,Setter,equals,canEqual,hasCode,toString等方法
@AllArgsConstructor //生成全參數構造函數
@NoArgsConstructor//生成無參構造函數
@Builder(toBuilder=true) //Builder的作用之一是爲了解決在某個類有很多構造函數的情況,也省去寫很多構造函數  修改實體,要求實體上添加@Builder(toBuilder=true)
@Accessors(chain = true)   //鏈式set
@Data //生成Getter,Setter,equals,canEqual,hasCode,toString等方法
@AllArgsConstructor //生成全參數構造函數
@NoArgsConstructor//生成無參構造函數
@Builder(toBuilder = true)         //Builder的作用之一是爲了解決在某個類有很多構造函數的情況,也省去寫很多構造函數  修改實體,要求實體上添加@Builder(toBuilder=true)
@RequiredArgsConstructor(staticName = "of")
public class Student {
    /**
     * 告訴編譯器,參數非空 和RequiredArgsConstructor配合生成靜態構造方法
     */
    @NonNull
    private String name;
    private Integer age;
    private String sex;
}

 測試類;
 

public static void main(String[] args) {
        //@Builder 不用寫構造函數  相當於只用兩個屬性的構造函數
        Student student = Student.builder()
                .name("張三")
                .age(18)
                .build();
        System.out.println(student);
        System.out.println("=====================================");
        //修改屬性
        String name = "李四";
        student = student.toBuilder()
                .name(name)
                .age(22)
                .sex("男")
                .build();
        System.out.println(student);
        System.out.println("================驗證鏈式set @Accessors(chain = true)註解===================");
        Student student2 =new Student()
                .setAge(25)
                .setName("張飛")
                .setSex("男");
        System.out.println(student2);
        System.out.println("=============靜態構造方法========================");
        List<String> list= Lists.newArrayList();
        HashMap<String, String> objectObjectHashMap = Maps.newHashMap();
        Student student3=Student.of("李白")
                .setAge(74)
                .setSex("男");
        System.out.println(student3);


    }
}

結果:

代碼就得騷起來!!!(還能解決idea和SonarLint的重複代碼掃描)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章