如何在java流畅的界面中首先弹出一个方法?

时间:2017-03-29 17:01:28

标签: java interface field fluent

这是我的第一次询问,很抱歉,如果我搞砸了什么。 我有一个使用Java流畅接口实现Mail的任务。 我必须有字段:From,To,Subject。

问题是,我不能将“From”显示为第一个也是唯一一个。 例: MailBuilder builder = new MailBuilder(); builder.from(“Stiliyan”)。((“Alexander”)。subject(“欢迎乘坐”);

但是当我输入第一个点“。”所有这些都出现了。 (例如,builder.to(“a”)。from(“b”)..)

简而言之:建造者。(此处只能出自“来自”)。(“不用担心”)......“

Here is MailBuilder.java

So here after "." must appear ONLY from method

1 个答案:

答案 0 :(得分:2)

然后,每个构建器方法的声明的返回类型不能相同。您仍然可以返回相同的构建器实例。例如:

void addBook(struct Book book[], int *size) {

    if (*size == MAX_BOOKS) {
        printf("The inventory is full\n");

    }
    else {

        printf("ISBN:");
        scanf("%d", &book[*size]._isbn);
        printf("Title:");
        scanf("%s", book[*size]._title);
        getchar();
        printf("Year:");
        scanf("%d", &book[*size]._year);
        printf("Price:");
        scanf("%f", &book[*size]._price);
        printf("Quantity:");
        scanf("%d", &book[*size]._qty);
        *size++;
        printf("The book is successfully added to the inventory.\n");
    }
    return book;
}

int main(void) {

    struct Book book[MAX_BOOKS];
    int size = 0;
    int i;
    int option;


    printf("Welcome to the Book Store\n");
    printf("=========================\n");

    do {
        menu();
        printf("Select: ");
        scanf("%d", &option);

        switch (option) {

        case 0:
            printf("Goodbye!\n");
            break;
        case 1:
            displayInventory(book, size);
            break;
        case 2:
            addBook(book, &size);
            break;
        case 3:
            //checkPrice();
            break;
        default:
            printf("Invalid input, try again:\n");
        }
    } while (option != 0);
}