lombok 实现 builder模式的链式bean
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 }