-1

さて、クラスAとクラスBがあり、クラスAにはBの配列が含まれています。これが、配列に新しいBを追加するためのコードです。

public void addNewB(B b){
  course[noOfBs]= b;
  noOfBs++;
}

Javaによると「式の型は配列型でなければなりませんが、Bに解決されました」

配列に追加する私の理論は、noOfBが配列内の次の空のインデックスであるため(何も削除されていないと仮定)、このコードはBを次の空のスロットに配置するだけであるためです。

なぜこれが機能しないのですか?!:((レイアウトが悪いので、このサイトを作成できませんでした!)

4

2 に答える 2

3

このエラーは、変数の型courseが実際Bにはであり、ではないことを示していB[]ます。宣言を見てください-私はあなたがそれがこのように見えることをかなり確信しています:

B course;

そうでない場合は、質問を編集して宣言を含めてください。

また、を使用することを検討してList<B>ください。そうすれば、次のものを使用できます。

public void addNewB(B b) {
    course.add(b);
}

noOfBs...そして変数を完全に削除します。

于 2012-11-28T14:38:56.617 に答える
0

あなたは何か間違ったことをしていると思います。あなたは完全な情報を与えられていないので。あなたの宣言または関数の呼び出し方法が間違っている可能性があると思います。これはうまくいくはずです。

B course[]=new B[MAX_COURSES]; /* This declares an array of refereneces */

public void addNewB(B b){
  course[noOfBs]= b;
  noOfBs++;
}

関数の呼び出し:

B course1=new B(); b.setCourseName("....") /* Make the object of B */
addNew(course1);
于 2012-11-28T14:55:32.740 に答える