Java 中的鏈式編程


前言

​ 在寫項目的時候,有一個實體類有好多個屬性,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;
    
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM