zoukankan      html  css  js  c++  java
  • 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());
      }
    }
    
    
    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    Java人员正确使用 IntelliJ IDEA的方式
    python错误:UnicodeDecodeError: 'utf8' codec can't decode byte 0xe6 in position 0: unexpected end of data
    htm5本地存储方案——websql的封装
    htm5本地存储方案——indexdb的封装
    jquery实现checkbox的单选和全选
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
    Live2d Test Env
  • 原文地址:https://www.cnblogs.com/javayida/p/13346751.html
Copyright © 2011-2022 走看看