その後ビルダーの各方法のご宣言戻り値の型は同じにすることはできませんあなたはまだたとえばかかわらず同じビルダーのインスタンスを返すことができます。
interface IFromBuilder {
IToBuilder from(String from);
}
interface IToBuilder {
IMailBuilder to(String to);
}
interface IMailBuilder {
Mail build();
}
class MailBuilder implements IFromBuilder, IToBuilder, IMailBuilder {
private String from;
private String to;
@Override
public IToBuilder from(String from) {
this.from = from;
return this;
}
@Override
public IMailBuilder to(String to) {
this.to = to;
return this;
}
@Override
public Mail build() {
return new Mail(from, to);
}
}
class Mail {
private final String from;
private final String to;
public Mail(String from, String to) {
this.from = from;
this.to = to;
}
public static IFromBuilder newBuilder() {
return new MailBuilder();
}
}
public class Demo {
public static void main(String[] args) {
Mail mail = Mail.newBuilder().from("[email protected]").to("[email protected]").build();
}
}
。
IDEは表示されていますか?または、テキストエディタを開発しましたか? IDEプラグインをプログラミングしている場合は、コード補完の提案について何かを調べる必要があります。 –
これは単なるコンソールアプリケーションです。何も特別なものではなく、流暢なインターフェイスで使用するだけです。だから、私は仕事を終えると、Fromフィールドが最初と唯一の選択肢として現れなければならないと私に言った。 –
@MarcosVasconcelos私はこのコードをpastebinに加えました。質問も編集しました。 –