构造函数AddPatron(String,String)是未定义的

时间:2019-11-20 22:52:47

标签: java

我正在尝试创建这些命令,创建AddPatron

时出现错误
if (cmd.equals("addbook")) {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Title: ");
            String title = br.readLine();
            System.out.print("Author: ");
            String author = br.readLine();
            System.out.print("Publication Year: ");
            String publicationYear = br.readLine();
            return new AddBook(title, author, publicationYear);

        } else if (cmd.equals("addpatron")) {
            BufferedReader brr = new BufferedReader(new InputStreamReader(System.in));
            System.out.print("Name: ");
            String name = brr.readLine();
            System.out.print("Phone: ");
            String phone = brr.readLine();
            return new AddPatron(name, phone);

Error: The constructor AddPatron(String, String) is undefined

它说要添加构造函数,但是我已经完全按照AddBook的方式完成了。但是,唯一的区别是AddPatron类有2个额外的Strings,我想读的却没有包括在内。

public class AddPatron implements Command {

    private final String name;
    private final String phone;
    private final String id;
    private final String list_of_books_borrowed;

    public AddPatron(String name, String phone, String id, String list_of_books_borrowed){
        this.name = name;
        this.phone = phone;
        this.id = id;
        this.list_of_books_borrowed = list_of_books_borrowed;
    }
}

1 个答案:

答案 0 :(得分:1)

public AddPatron(String name, String phone, String id, String list_of_books_borrowed)

此构造函数需要4个不同的字符串。

new AddPatron(name, phone);

但是在这里,您仅传递2个字符串。您需要传递其他两个或编写一个仅接受名称和电话的新构造函数。

请注意,类表示事物,其名称通常应为名词。另一方面,方法是 actions ,其名称应为动词。因此,您可以拥有一个名为addPatron()的方法和一个名为Patron的类。给类AddPatron命名可能会造成混淆。