-1

配列ゲストにゲストを追加したいのですが、何が間違っているのか分かりますか、それとも文字列、コンストラクター、コンストラクターを呼び出すことができませんか?

エラーは次のとおりです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)

クラスケーキ:

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

2 に答える 2

2

メソッドに間違ったパラメーターを渡しています。addGuest は、プログラムでゲスト パラメーターのみを受け取ることができます。メソッドをオーバーロードして addGuest(String, Tea,Cake) などのパラメーターをサポートするか、ゲスト名のみをパラメーターとして渡す必要があります。

于 2012-12-28T12:40:35.493 に答える
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のコンストラクターに必要な引数を間違ったmethod(addGuest(<Guest>))に渡すため、実際のGuestオブジェクトが必要になります。

編集
さらに、これも機能しません

guests[0]=table.addGuest(...);

table.addGuest(...)は型であるためvoid、何も返されないため、コンパイラエラーが発生します。
の使用法を再考することをお勧めしguests[]ます。おそらく、この問題を解決するためにコレクション(LinkedListまたはなど )を使用できます。ArrayList

于 2012-12-28T13:23:09.610 に答える