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')。
在左侧文件管理器内右键对应文件,在末尾点击Builgen
。
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.
从生成的内容来看,比lombok更符合要求,lombok不支持同时加上builder和构造器同时支持,这在很多rpc和框架中是不可接受的。