package com.wing.mall.base.test; import lombok.*; import lombok.experimental.Accessors; import java.io.Serializable; /** * @ProjectName: baby * @Package: com.wing.mall.base.test * @ClassName: User * @Author: heluwei * @Description: 鏈式操作對象 * @Date: 2020/4/14 18:28 * @Version: 1.0 */ @Builder @Data public class User implements Serializable { private Long id; private String name; private Integer age; public static void main(String[] args) { //鏈式創建對象 User user = User.builder().id(1L).name("張三").age(18).builder();
System.out.println(user);
//獲取name的值,以前是getName()
System.out.println(user.name);
}
}
通過Builder的方式鏈式組裝
package com.wing.mall.base.test; import lombok.*; import java.io.Serializable; /** * @ProjectName: baby * @Package: com.wing.mall.base.test * @ClassName: User * @Author: heluwei * @Description: 鏈式操作對象 * @Date: 2020/4/14 18:28 * @Version: 1.0 */ @Data public class User implements Serializable { private Long id; private String name; private Integer age; //通過Builder把值通過構造器的方式傳遞 public User(Builder builder) { this.id = builder.id; this.name = builder.name; this.age = builder.age; } @Getter static class Builder{ private Long id; private String name; private Integer age; public Builder setId(Long id) { this.id = id; return this; } public Builder setName(String name) { this.name = name; return this; } public Builder setAge(Integer age) { this.age = age; return this; } public User builder(){ return new User(this); } } public static void main(String[] args) { User user = new User.Builder().setId(1L).setName("張三").setAge(18).builder(); System.out.println(user); } }
輸出結果:
使用@Builder注解和構造器
package com.wing.mall.cloud.pay.modular.controller; import lombok.*; @Data @Builder @NoArgsConstructor //生成無參構造器 @AllArgsConstructor //生成所有參數的構造器 public class Student { private String name; private Integer age; }
測試:
1 public static void main(String[] args) { 2 Student student = Student.builder().age(18).build(); 3 System.out.println(student); 4 Student student1 = new Student("lisi",19); 5 System.out.println(student1); 6 Student student2 = new Student(); 7 student2.setAge(20); 8 student2.setName("wangwu"); 9 System.out.println(student2); 10 /* if (shouldShowSpinner("a", "b")) { 11 System.out.println("封裝參數成功"); 12 }else { 13 System.out.println("封裝參數失敗"); 14 }*/ 15 }