lombok链式编程
2021/9/8 14:36:02
本文主要是介绍lombok链式编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
lombok链式编程
lombok能通过注解的方式,在编译时自动为属性生成构造器,getter/setter、equals、hashcode、toString方法。
1.添加依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.14</version> <scope>provided</scope> </dependency>
2.lombok实现静态的链式编程
把bean改成lombok添加**@Accessors(chain = true)**注解即可
package com.change.entity; import lombok.Data; import lombok.experimental.Accessors; @Accessors(chain = true) @Data public class UserDemo { private Long id; private String username; private String password; }
链式编程的使用
package com.change; import com.change.entity.UserDemo; public class demo { public static void main(String[] args) { UserDemo userDemo=new UserDemo(); userDemo.setId(1L).setUsername("aa").setPassword("abc"); } }
3静态链式编程
静态链接编程创建对象更简洁,可以在静态方法,静态代码块等中使用,对于必输字段,也可以强制要求
3.1Lombok实现静态的链式编程
比如,创建Student对象是没有会要求一些必输字段,比如name字段必须有值,如果自己写
public class StudentBean { private String name; private int age; private StudentBean(String name) { //默认构造方法置为 private this.name = name; } public static StudentBean getInstance(String name) { //唯一的 public 构造方法,name 不能为空 if (name == null) throw new NullPointerException("name is not null"); return new StudentBean(name); } //------------ getter/setter -------------- public StudentBean setName(String name) { this.name = name; return this; // 返回this } public StudentBean setAge(int age) { this.age = age; return this; // 返回this } public String getName() { return this.name; } public int getAge() { return this.age; } public String toString() { return "StudentBean(name=" + getName() + ", age=" + getAge() + ")"; } }
使用lombok注解,实现静态的链式编程
@Accessors(chain = true) @Data @RequiredArgsConstructor(staticName = "getInstance") //指定构造方法 public class StudentBean { @NonNull private String name; private int age; }
在使用的时候
package com.change; import java.math.BigDecimal; public class demo2 { public static void main(String[] args) { StudentBean studentBean = StudentBean.getInstance("lisi").setAge(20); } }
@RequiredArgsConstructor原理
import lombok.NonNull; public class StudentBean { @NonNull private String name; private int age; // 默认构造方法置为 private private StudentBean(@NonNull String name) { if (name == null) throw new NullPointerException("name"); this.name = name; } //唯一的 public 构造方法,name 不能为空 public static StudentBean getInstance(@NonNull String name) { return new StudentBean(name); } //------------ getter/setter -------------- public StudentBean setName(@NonNull String name) { if (name == null) throw new NullPointerException("name"); this.name = name; return this; // 返回this } public StudentBean setAge(int age) { this.age = age; return this; // 返回this } @NonNull public String getName() { return this.name; } public int getAge() { return this.age; } public String toString() { return "StudentBean(name=" + getName() + ", age=" + getAge() + ")"; } // -- 省略 equals,canEqual ,hashCode--- }
这篇关于lombok链式编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南