前言

​ 在写项目的时候,有一个实体类有好多个属性,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; }

最新文章

  1. 后HTML5时代
  2. WCF X.509验证
  3. BZOJ 2466: [中山市选2009]树
  4. 接口(Java)
  5. 为什么NOLOCK查询提示是个不明智的想法
  6. scala学习笔记(6):闭包
  7. 【NodeJS】---express配置ejs mongoose route等
  8. 比file_get_contents稳定的curl_get_contents
  9. redis数据类型-集合类型
  10. 使用 “mini-css-extract-plugin” 提取css到单独的文件
  11. springMVC--annotation
  12. 《Dare To Dream》第七次作业:团队项目设计完善&amp;编码测试
  13. [程序员代码面试指南]数组和矩阵问题-找到无序数组中最小的k个数(堆排序)
  14. Java大数练习
  15. 深入浅出mybatis之与spring集成
  16. 线程基础:多任务处理——MESI协议以及带来的问题:伪共享
  17. Luogu5058 ZJOI2004嗅探器(割点)
  18. win 2012 安装mysql 5.7.20 及报错 This application requires Visual Studio 2013 Redistributable. Please install the Redistributable then run this installer again 的解决办法
  19. 【转】Windows Server 2016 安装 IIS 服务时提示指定备用源路径
  20. Jdbc Url 设置allowMultiQueries为true和false时底层处理机制研究

热门文章

  1. Elasticsearch修改分词器以及自定义分词器
  2. DNS区域传输和DNS字典爆破
  3. SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION &#39;utf8mb4_unicode_ci&#39; is not valid for CHARACTER SET &#39;binary&#39;
  4. springboot_自动配置原理
  5. 查看日志文件常用命令:tail,cat,tac,head,echo
  6. 啊湫----今天做项目遇到的redis缓存问题---解决方案
  7. Docker 快速入门(一)- 情况介绍和安装
  8. 计算机网络之DNS常见攻击
  9. 入门大数据---Hive分区表和分桶表
  10. 恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合