Builgen 插件——IntelliJ IDEA和Eclipse Java Bean Builder模式代码生成器

Builgen-plugin

介绍

  • builder模式在越来越多的项目中使用,类似于alibaba fastjson JSONObject.fluentPut(),调用一个方法后返回这个对象本身,特别适合构建一些参数超级多的对象,代码优雅且易读。构建一个对象变成了SomeObject some = new SomeObject().a("a").b("b").c("c").biuld();
  • ItellJ IDEAEclipsegenerator只能生成传统的getter setter,后来IDEA新版本中可以选择builder模式,生成的setter方法不再返回void,而是返回对象本身,属于简易的builder模式,于是自己写了一个插件供参考,提供一种思路。
  • 源码:Builgen-plugin

用法

eclipse

T测试环境:JDK 1.8 + Eclipse Oxygen Release (4.7.0)

  • 复制Builgen_1.0.0.201708310007.jareclipseplugins目录。
  • 删除目录下的eclipse\configuration\org.eclipse.update 文件夹.
  • 重启ecplise加上-clean option(Windows:cmd->cd $dir_eclipse.exe->run cmd 'eclipse -clean')。
  • 创建一个Java Bean
  public class TestBean {
      private String mes;
      private int[] inteters;
      private List<String> strings;
      private List<Map<String, Object>> ddd;
      private boolean klk;
      private double dst;
  }
  • 在左侧文件管理器内右键对应文件,在末尾点击Builgen

    eclipse-rk

  • 文件内容将被替换:

    public class TestBean {
        private String mes;
        private int[] inteters;
        private List<String> strings;
        private List<Map<String, Object>> ddd;
        private boolean klk;
        private double dst;
    
        public TestBean(TestBean testBean) {
            this.mes = testBean.getMes();
            this.inteters = testBean.getInteters();
            this.strings = testBean.getStrings();
            this.ddd = testBean.getDdd();
            this.klk = testBean.getKlk();
            this.dst = testBean.getDst();
        }
    
        public TestBean() {
        }
    
        public static class TestBeanBuilder {
            TestBean testBean;
    
            public TestBeanBuilder() {
                testBean = new TestBean();
            }
    
            public TestBeanBuilder mes(String mes) {
                testBean.setMes(mes);
                return this;
            }
    
            public TestBeanBuilder inteters(int[] inteters) {
                testBean.setInteters(inteters);
                return this;
            }
    
            public TestBeanBuilder strings(List<String> strings) {
                testBean.setStrings(strings);
                return this;
            }
    
            public TestBeanBuilder ddd(List<Map<String, Object>> ddd) {
                testBean.setDdd(ddd);
                return this;
            }
    
            public TestBeanBuilder klk(boolean klk) {
                testBean.setKlk(klk);
                return this;
            }
    
            public TestBeanBuilder dst(double dst) {
                testBean.setDst(dst);
                return this;
            }
    
            public TestBean build() {
                return new TestBean(this.testBean);
            }
        }
    
        public void setDst(double dst) {
            this.dst = dst;
        }
    
        public double getDst() {
            return this.dst;
        }
    
        public void setKlk(boolean klk) {
            this.klk = klk;
        }
    
        public boolean getKlk() {
            return this.klk;
        }
    
        public void setDdd(List<Map<String, Object>> ddd) {
            this.ddd = ddd;
        }
    
        public List<Map<String, Object>> getDdd() {
            return this.ddd;
        }
    
        public void setStrings(List<String> strings) {
            this.strings = strings;
        }
    
        public List<String> getStrings() {
            return this.strings;
        }
    
        public void setInteters(int[] inteters) {
            this.inteters = inteters;
        }
    
        public int[] getInteters() {
            return this.inteters;
        }
    
        public void setMes(String mes) {
            this.mes = mes;
        }
    
        public String getMes() {
            return this.mes;
        }
    }

IntelliJ IDEA

测试环境:JDK 1.8 + INTELLIJ IDEA COMMUNITY 2017.2.1

  • 下载Builgen.jar
  • File -> Settings -> plugins -> Install Plugins From Disk,选择下载的jar包并重启IDEA
  • 创建Java Bean在编辑器内右键呼出上下文菜单,然后点击 Generate -> Builgen.

    idea-rk

  • Eclipse输出结果一样,但是Builder类少了static,实在没找到IDEA插件能在那里加上这个修饰符,所以目前只能手动加。

猜你喜欢

转载自blog.csdn.net/cl_yd/article/details/77757770