Builgen-plugin
介绍
builder
模式在越来越多的项目中使用,类似于alibaba fastjson JSONObject.fluentPut()
,调用一个方法后返回这个对象本身,特别适合构建一些参数超级多的对象,代码优雅且易读。构建一个对象变成了SomeObject some = new SomeObject().a("a").b("b").c("c").biuld();
。ItellJ IDEA
和Eclipse
的generator
只能生成传统的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.jar
到eclipse
的plugins
目录。 - 删除目录下的
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
。文件内容将被替换:
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
.和
Eclipse
输出结果一样,但是Builder
类少了static
,实在没找到IDEA
插件能在那里加上这个修饰符,所以目前只能手动加。