前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Build来构建对象的写法 顶

用Build来构建对象的写法 顶

作者头像
算法之名
发布2019-08-20 17:21:23
5900
发布2019-08-20 17:21:23
举报
文章被收录于专栏:算法之名算法之名

如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。

代码语言:javascript
复制
import java.io.Serializable;
import java.util.Date;

public class Log implements Serializable {
   private static final long serialVersionUID = 3355538580546591073L;

   private Long id;
   private String username;
   /** 模块 */
   private String module;
   /** 参数值 */
   private String params;
   private String remark;
   private Boolean flag;
   private Date createTime;

   public Log(Builder builder) {
      this.id = builder.id;
      this.username = builder.username;
      this.module = builder.module;
      this.params = builder.params;
      this.remark = builder.remark;
      this.flag = builder.flag;
      this.createTime = builder.createTime;
   }
   public Long getId() {
      return id;
   }

   public void setId(Long id) {
      this.id = id;
   }

   public String getUsername() {
      return username;
   }

   public void setUsername(String username) {
      this.username = username;
   }

   public String getModule() {
      return module;
   }

   public void setModule(String module) {
      this.module = module;
   }

   public String getParams() {
      return params;
   }

   public void setParams(String params) {
      this.params = params;
   }

   public String getRemark() {
      return remark;
   }

   public void setRemark(String remark) {
      this.remark = remark;
   }

   public Boolean getFlag() {
      return flag;
   }

   public void setFlag(Boolean flag) {
      this.flag = flag;
   }

   public Date getCreateTime() {
      return createTime;
   }

   public void setCreateTime(Date createTime) {
      this.createTime = createTime;
   }
   public static class Builder {
      private static Long id;
      private static String username;
      /** 模块 */
      private static String module;
      /** 参数值 */
      private static String params;
      private static String remark;
      private static Boolean flag;
      private static Date createTime;
      public Builder() {

      }
      public Builder id(Long id) {
         this.id = id;
         return this;
      }
      public Builder username(String username) {
         this.username = username;
         return this;
      }
      public Builder module(String module) {
         this.module = module;
         return this;
      }
      public Builder params(String params) {
         this.params = params;
         return this;
      }
      public Builder remark(String remark) {
         this.remark = remark;
         return this;
      }
      public Builder flag(Boolean flag) {
         this.flag = flag;
         return this;
      }
      public Builder createTime(Date createTime) {
         this.createTime = createTime;
         return this;
      }
      public Log build() {
         return new Log(this);
      }
   }
}

调用方法:

代码语言:javascript
复制
Log log =new Log.Builder().username(username).module(LogModule.LOGIN).remark(remark).createTime(new Date())
        .build();

这样我们就可以时用我们有需要的属性赋值,并且进行构建对象。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档