有没有办法使用 * 自动生成器 * 为Eclipse中的类创建生成器(Joshua Bloch's Builder Pattern)?例如菜单中的一个选项,一个插件或其他东西。我在“Refactor"下找不到任何东西。
Eclipse
Refactor
bbuxkriu1#
您可能需要查看lombok注解以生成不带样板代码的构建器。例如:
@Builder public class MyPojo { private String name; } MyPojoBuilder.builder().name("yourame").build();
其局限性在于,这似乎不适用于抽象类。
emeijp432#
也许我来晚了。Eclipse本身并不提供生成代码以支持构建器模式的方法,但是它可以通过插件进行扩展以增强功能。有这个插件,我用这个:https://github.com/henningjensen/bpep编辑:5年后,重新审视这个主题,我建议使用lombok,它已经成为行业标准,而且也是IDE不可知论者==〉如果你的团队成员使用各种IDE,它会起作用。查看这个注解。你也可以在类中包含模式inheritance。
@Builder(toBuilder = true) // or you could use this for inheritance @SuperBuilder
ubby3x7f3#
我目前在Eclipse Neon.1a发行版(4.6.1)中使用Spark Builder Generator,它运行良好。
您可以在以下位置设置首选项:窗口-〉首选项-〉Java-〉Spark Builder生成器
gojuced74#
尝试https://github.com/vojtek/write-it-once
package ${cls.package.name}; public class ${cls.shortName}Builder { public static ${cls.name}Builder builder() { return new ${cls.name}Builder(); } <% for(field in cls.fields) {%> private ${field.type.name} ${field.name}; <% } %> <% for(field in cls.fields) {%> public ${cls.name}Builder ${field.name}(${field.type.name} ${field.name}) { this.${field.name} = ${field.name}; return this; } <% } %> public ${cls.name} build() { final ${cls.name} data = new ${cls.name}(); <% for(field in cls.fields) {%> data.${field.setter.name}(this.${field.name}); <% } %> return data; } }
7bsow1i65#
您可以添加自己的模板窗口-〉首选项-〉java -〉编辑器-〉模板,这将通过内容建议激活,而不是通过重构操作激活
5条答案
按热度按时间bbuxkriu1#
您可能需要查看lombok注解以生成不带样板代码的构建器。例如:
其局限性在于,这似乎不适用于抽象类。
emeijp432#
也许我来晚了。
Eclipse本身并不提供生成代码以支持构建器模式的方法,但是它可以通过插件进行扩展以增强功能。
有这个插件,我用这个:
https://github.com/henningjensen/bpep
编辑:5年后,重新审视这个主题,我建议使用lombok,它已经成为行业标准,而且也是IDE不可知论者==〉如果你的团队成员使用各种IDE,它会起作用。查看这个注解。你也可以在类中包含模式inheritance。
ubby3x7f3#
我目前在Eclipse Neon.1a发行版(4.6.1)中使用Spark Builder Generator,它运行良好。
您可以在以下位置设置首选项:
窗口-〉首选项-〉Java-〉Spark Builder生成器
gojuced74#
尝试https://github.com/vojtek/write-it-once
7bsow1i65#
您可以添加自己的模板窗口-〉首选项-〉java -〉编辑器-〉模板,这将通过内容建议激活,而不是通过重构操作激活