Is there a way to use an automatic builder to create builder (Joshua Bloch's Builder Pattern) for classes in Eclipse
? For example an option in the menu, a plugin or something else. I could not find anything under "Refactor
".
Maybe I am late to the party.
Eclipse on its own does not provide a way to generate code to support builder pattern. However it can be extended through plugins to enhance the functionality.
There is this plugin that I use this:
You may want to look at lombok annotations to generate builders without the boiler plate code. For example:
@Builder
public class MyPojo {
private String name;
}
MyPojoBuilder.builder().name("yourame").build();
The limitation is that this doesn't seem to work with abstract classes.
I currently use Spark Builder Generator with Eclipse Neon.1a Release (4.6.1) and it works well.
Try 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;
}
}
You could add your own template window -> preferences -> java -> editor -> templates and this will be activated with the content proposal but not by refactor action
来源:https://stackoverflow.com/questions/29493898/automatically-create-builder-for-class-in-eclipse