在Eclipse中自动创建类的生成器

lc8prwob  于 2023-02-04  发布在  Eclipse
关注(0)|答案(5)|浏览(185)

有没有办法使用 * 自动生成器 * 为Eclipse中的类创建生成器(Joshua Bloch's Builder Pattern)?例如菜单中的一个选项,一个插件或其他东西。我在“Refactor"下找不到任何东西。

bbuxkriu

bbuxkriu1#

您可能需要查看lombok注解以生成不带样板代码的构建器。例如:

@Builder
public class MyPojo {
    private String name;
}

MyPojoBuilder.builder().name("yourame").build();

其局限性在于,这似乎不适用于抽象类。

emeijp43

emeijp432#

也许我来晚了。
Eclipse本身并不提供生成代码以支持构建器模式的方法,但是它可以通过插件进行扩展以增强功能。
有这个插件,我用这个:
https://github.com/henningjensen/bpep
编辑:5年后,重新审视这个主题,我建议使用lombok,它已经成为行业标准,而且也是IDE不可知论者==〉如果你的团队成员使用各种IDE,它会起作用。查看这个注解。你也可以在类中包含模式inheritance

@Builder(toBuilder = true)
// or you could use this for inheritance
@SuperBuilder
ubby3x7f

ubby3x7f3#

我目前在Eclipse Neon.1a发行版(4.6.1)中使用Spark Builder Generator,它运行良好。

您可以在以下位置设置首选项:
窗口-〉首选项-〉Java-〉Spark Builder生成器

gojuced7

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;
}
}
7bsow1i6

7bsow1i65#

您可以添加自己的模板窗口-〉首选项-〉java -〉编辑器-〉模板,这将通过内容建议激活,而不是通过重构操作激活

相关问题