• Idea生成Builder代码-插件Builder Generator


    为啥使用

    最近在搞项目重构,就是请求的Request都走builder模式…
    体力活,如果自己一个一个写,就很麻烦,这时候就要使用插件了…

    插件

    当时搜索builer,出来很多,好像是第一个吧,下载的比较多…
    在这里插入图片描述
    安装完成后重启

    使用

    以前实体类生成构造方法,或者getset方法的时候,使用的快捷键是alt+insert,同样,现在生成Builder类也是这个快捷键;

    在这里插入图片描述
    可以看见多了个Builder…然后生成,可以修改前缀,和类名,用的比较多的就是innerBuilder那个复选框,就是在当前类的内部生成静态内部类…
    在这里插入图片描述
    在这里插入图片描述

    这是比较通用的,具体根据自己的公司习惯再去修改修改.
    举个栗子:
    我们builder构建走静态create方法,这时候应该让user是不可变的,是保持valid状态的;生成的是anUser,然后方法参数都是必传参数;必传参数就是final,User类的属性就全部是final;跟生成的还是有区别的
    然后就要修改修改:

    public class User {
    
      private final String name;
    
      private final String password;
    
      public User(UserBuilder builder) {
        this.name = builder.name;
        this.password = builder.password;
      }
    
      public String getName() {
        return name;
      }
    
      public String getPassword() {
        return password;
      }
    
      public static final class UserBuilder {
        private final String name;
        private String password;
    
        private UserBuilder(String names) {
          this.name = names;
        }
    
        //构建参数是必传参数
        public static UserBuilder create(String name) {
          return new UserBuilder(name);
        }
    
        public UserBuilder withPassword(String password) {
          this.password = password;
          return this;
        }
    
        public User build() {
          return new User(this);
        }
      }
    
      public static void main(String[] args) {
        User aaa = UserBuilder.create("aaa").withPassword("123").build();
        System.out.println(aaa.getName());
      }
    }
    
    
    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    02-计算字符个数-2
    01-计算字符个数-1
    30-Ubuntu-用户权限-01-用户和权限的基本概念
    2-数据分析-matplotlib-1-概述
    1-数据分析简述
    05_二进制、八进制、十进制与十六进制转换
    29-Ubuntu-远程管理命令-03-SSH工作方式简介
    28-Ubuntu-远程管理命令-02-查看网卡的配置信息
    27-Ubuntu-远程管理命令-01-关机和重启
    2-JDK环境变量配置和验证
  • 原文地址:https://www.cnblogs.com/javayida/p/13346751.html
Copyright © 2020-2023  润新知