这是我第一次提问,如果我弄乱了一些东西,我很抱歉。 我有一个任务是使用 Java 流畅的接口(interface)来实现邮件。 我必须有字段:发件人、收件人、主题。
问题是,我无法让“From”作为第一个且唯一的出现。 例子: MailBuilder 构建器 = new MailBuilder(); builder.from("Stiliyan").to("Alexander").subject("欢迎加入");
但是当我输入第一个点“.”时他们都出现了。 (例如 builder.to("a").from("b")..)
简而言之:builder.(此处必须仅出现“from”).to(“无忧”)...”
最佳答案
那么每个构建器方法的声明返回类型不能相同。不过,您仍然可以返回相同的构建器实例。例如:
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("sender@a.com").to("receiver@b.com").build();
}
}
关于java - 如何使java流畅界面中的方法首先弹出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43099774/