0

オブジェクトの動的な「データベース」が必要でしたが、調査の結果、ArrayListを使用することにしました。ただし、次のようなコードでarraylistを変更することはできません。

public static ArrayList cprofiles;
...
cprofiles = new ArrayList();
...
...
Customer newc = new Customer (lna, fna, sinum, year, month, day);
cprofiles.add (newc);

この宣言の後、次の形式を使用してオブジェクト内のメソッドを呼び出そうとしていますcprofiles.get(0).getName()が、次のようなエラーが発生します

シンボルが見つかりません(.getName()を指す)

プログラムをコンパイルしようとしたとき。ArrayListでこれを変更するための適切な方法を調査するために、約1時間費やしましたが、私が見つけた情報源は、私が行っていることが実際に正しいことを示唆しているようです。エラーを見つけて修正する方法を教えてください。

ありがとう!

4

1 に答える 1

6

生のバージョンではなく、汎用バージョンのArrayListを使用する必要があります。

List<Customer> cprofiles = new ArrayList<Customer>();

を使用するだけの場合ArrayList、コンパイラはリストに何が含まれているかを認識しないため、すべてが。と見なされますObject。したがって、返されたオブジェクトを実際のタイプにキャストする必要があります。

Customer c = (Customer) list.get(0);
于 2012-10-21T14:55:02.137 に答える