我正在尝试创建这些命令,创建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;
}
}
答案 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
命名可能会造成混淆。