我想将一个Guest添加到数组客户端,你们可以看看我做错了什么,或者我不能调用一个字符串,构造函数,构造函数?
错误说:the method addGuest(Guest) in the type table is not applicable for the argument ( String, Tea,Cake)
。我想把一个客人放到一个数组
这是我的代码。
guests[0]=table.addGuest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
类Guest的构造函数是这样的:
public Guest(String name, Tea newTea, Cake newCake)
类Tea的构造函数是:
public Tea(String name, boolean suiker, boolean melk)
Class Cake:
public Cake(String name) {
this.name = name;
}
addGuest方法:
public void addGuest(Guest guest)
我想要做的是:
guests[0]=table.addGuest(new Guest("Alice"),new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
答案 0 :(得分:2)
您将错误的参数传递给方法。 addGuest只能在程序中获取guest参数。或者你需要重载方法来支持你的参数,比如addGuest(String,Tea,Cake),或者你只需要将访客名称作为参数传递。
答案 1 :(得分:1)
你应该使用,
Guest g = new Guest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
table.addGuest(g);
而不是
guests[0]=table.addGuest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge"));
因为你将Guest构造函数所需的参数传递给了错误的方法(addGuest(<Guest>)
),这需要实际的Guest-object。
修改强>
此外,这也不起作用
guests[0]=table.addGuest(...);
因为table.addGuest(...)
的类型为void
,所以它不会返回任何内容,因此会出现编译错误。
我建议您重新考虑使用guests[]
,您可以使用集合(例如LinkedList
或ArrayList
)来解决此问题。