Java 中的链式编程
2024-10-09 09:09:14
前言
在写项目的时候,有一个实体类有好多个属性,new 出来之后需要不停的使用setXXX( )方法,效率低而且代码可读性差,查询了下发现可以实现实体类的链式编程。
public class User {
private Integer id;
private String userName;
private String password;
private String nikeName;
private String email;
private String phoneNum;
/**
setter/getter方法省略
*/
}
- 测试类中的赋值操作
User user = new User();
user.setId(1);
user.setEmail("xxxx");
user.setUserName("test");
user.setPassword("5454");
user.setNikeName("swds");
user.setPhoneNum("17575");
一、 在setter方法中实现链式编程
- 修改setter方法的返回值为实体类类型,添加
return this;
语句
public class User {
private Integer id;
private String userName;
private String password;
private String nikeName;
private String email;
private String phoneNum;
public Integer getId() {
return id;
}
public User setId(Integer id) {
this.id = id;
return this;
}
public String getUserName() {
return userName;
}
public User setUserName(String userName) {
this.userName = userName;
return this;
}
public String getPassword() {
return password;
}
public String getNikeName() {
return nikeName;
}
public User setNikeName(String nikeName) {
this.nikeName = nikeName;
return this;
}
public String getEmail() {
return email;
}
public User setEmail(String email) {
this.email = email;
return this;
}
public String getPhoneNum() {
return phoneNum;
}
public User setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
return this;
}
public User setPassword(String password) {
this.password = password;
return this;
}
}
- 在测试类中实现了链式编程
User user = new User();
user.setId(1).setUserName("sdd").setPhoneNum("sdsd").setNikeName("dsdsd").setEmail("xxxxx").setPassword("122");
二、 使用lombok实现链式编程
- 使用lombok之前,必须确保你的IDEA或者Eclipse中安装了lombok插件
- 在项目中导入lombok的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
- 在实体类上添加
@Accessors(chain = true)
注解即可开启链式编程
@Accessors(chain = true) // 开启链式编程
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String userName;
private String password;
private String nikeName;
private String email;
private String phoneNum;
}
最新文章
- 后HTML5时代
- WCF X.509验证
- BZOJ 2466: [中山市选2009]树
- 接口(Java)
- 为什么NOLOCK查询提示是个不明智的想法
- scala学习笔记(6):闭包
- 【NodeJS】---express配置ejs mongoose route等
- 比file_get_contents稳定的curl_get_contents
- redis数据类型-集合类型
- 使用 “mini-css-extract-plugin” 提取css到单独的文件
- springMVC--annotation
- 《Dare To Dream》第七次作业:团队项目设计完善&;编码测试
- [程序员代码面试指南]数组和矩阵问题-找到无序数组中最小的k个数(堆排序)
- Java大数练习
- 深入浅出mybatis之与spring集成
- 线程基础:多任务处理——MESI协议以及带来的问题:伪共享
- Luogu5058 ZJOI2004嗅探器(割点)
- win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please install the Redistributable then run this installer again 的解决办法
- 【转】Windows Server 2016 安装 IIS 服务时提示指定备用源路径
- Jdbc Url 设置allowMultiQueries为true和false时底层处理机制研究
热门文章
- Elasticsearch修改分词器以及自定义分词器
- DNS区域传输和DNS字典爆破
- SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION &#39;utf8mb4_unicode_ci&#39; is not valid for CHARACTER SET &#39;binary&#39;
- springboot_自动配置原理
- 查看日志文件常用命令:tail,cat,tac,head,echo
- 啊湫----今天做项目遇到的redis缓存问题---解决方案
- Docker 快速入门(一)- 情况介绍和安装
- 计算机网络之DNS常见攻击
- 入门大数据---Hive分区表和分桶表
- 恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合