Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组,不适用于参数_Java_Arrays_Inherited Constructors - Fatal编程技术网

Java 数组,不适用于参数

Java 数组,不适用于参数,java,arrays,inherited-constructors,Java,Arrays,Inherited Constructors,我想在数组来宾中添加一个来宾,你们能看到我做错了什么吗,或者我不能调用字符串、构造函数、构造函数吗 错误是:类型表中的addGuestGuest方法不适用于参数字符串Tea和Cake。我想把一个客人放到一个数组里 这是我的密码 guests[0]=table.addGuest("Alice",new Tea("RoseShip Tea",false,true),new Cake("Chocolate Sponge")); 类Guest的构造函数如下所示: public Guest(String

我想在数组来宾中添加一个来宾,你们能看到我做错了什么吗,或者我不能调用字符串、构造函数、构造函数吗

错误是:类型表中的addGuestGuest方法不适用于参数字符串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)
班级蛋糕:

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"));

您向方法传递了错误的参数。addGuest只能在程序中使用guest参数。您可以使用重载方法来支持addGuestString、Tea、Cake等参数,也可以只传递来宾姓名作为参数。

您应该使用

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构造函数所需的参数传递给了错误的methodaddGuest,后者需要实际的Guest对象

编辑 此外,这也行不通

guests[0]=table.addGuest(...);
因为桌上的客人。。。是void类型,因此它不会返回任何内容,因此您将得到一个编译器错误。
我建议重新考虑来宾[]的使用,您可能可以使用LinkedList或ArrayList之类的集合来解决此问题。

了解这是哪种编程语言会有帮助。编程语言是Java这与继承的构造函数有什么关系?错误消息非常清楚-addGuest方法只接受一个类型为Guest的参数,而不是字符串、Tea和蛋糕。在表上调用addGuest,然后将addGuest的返回值显式分配给guests[0]guests的第一个元素。这不是试图将来宾放入数组,请重新思考您的代码!是的,但是类guest的构造函数类似于“public GuestString name,Tea newTea,Cake newCake”