自動ビルダーを使用して、Eclipse
のクラスにビルダー( Joshua Blochのビルダーパターン )を作成する方法はありますか?たとえば、メニューのオプション、プラグインなど。 「Refactor
」の下に何も見つかりませんでした。
たぶん私はパーティーに遅れています。
Eclipse自体は、ビルダーパターンをサポートするコードを生成する方法を提供しません。ただし、機能を強化するためにプラグインを介して拡張できます。
私がこれを使用するこのプラグインがあります:
lombok 注釈を見て、ボイラープレートコードなしでビルダーを生成できます。例えば:
@Builder
public class MyPojo {
private String name;
}
MyPojoBuilder.builder().name("yourame").build();
制限は、これが抽象クラスでは機能しないように見えることです。
現在、Eclipse Neon.1aリリース(4.6.1)でSpark Builder Generatorを使用していますが、うまく機能しています。
試す 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;
}
}
独自のテンプレートウィンドウ->設定-> Java-> editor-> templatesを追加できます。これはコンテンツの提案でアクティブになりますが、リファクタリングアクションではありません