在 Eclipse 中自动为 class 创建生成器

Automatically create builder for class in Eclipse

有没有办法使用自动构建器Eclipse中的类创建构建器(Joshua Bloch's Builder Pattern)?例如菜单中的选项、插件或其他东西。我在“Refactor”下找不到任何内容。

您可以添加自己的模板 window -> 首选项 -> java -> 编辑器 -> 模板,这将通过内容提案激活,但不会通过重构操作激活

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

@Builder
public class MyPojo {
    private String name;
}

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

限制是这似乎不适用于抽象 类。

也许我迟到了。

Eclipse 本身不提供生成代码以支持构建器模式的方法。然而,它可以通过插件进行扩展以增强功能。

我用的是这个插件:

https://github.com/henningjensen/bpep

编辑:5 年后,重新审视这个话题,建议使用已经成为行业标准的 lombok,它也是 IDE 不可知论者 ==> 如果你的队友使用各种 IDEs.

尝试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;
}
}

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

You can set the preferences under:
Window->Preferences->Java->Spark Builder Generator