7

を配列convertToArray()に変換するメソッドがあります。ArrayList要素がに追加されるたびにこのメソッドを呼び出したいと思いますArrayList

public class Table extends ArrayList<Row>
{
public String appArray[]; //Array of single applicant details
public String tableArray[][]; //Array of every applicant
/**
 * Constructor for objects of class Table
 */
public Table()
{
}

public void addApplicant(Row app)
{
    add(app);
    convertToArray();
}

public void convertToArray()
{
    int x = size();
    appArray=toArray(new String[x]);
}

}

メソッドを呼び出すと、addApplication(Row app)次のエラーが発生します。java.lang.ArrayStoreException

そこで、addApplicant()メソッドを次のように変更しました。

 public void addApplicant(Row app)
 {
    add(app);
    if (size() != 0)
    convertToArray();
}

同じエラーメッセージが表示されます。なぜ何かアイデアはありますか?変換する前にhas要素をチェックするかどうかを考えましたArrayListが、エラーはスローされるべきではありませんか?

必要に応じて完全なエラーを提供できます

4

1 に答える 1

19

ArrayStoreException は、オブジェクトの配列に間違った型のオブジェクトを格納しようとしたことを示すためにスローされます。

そう、

public Row[] appArray; // Row - because you extend ArrayList<Row>

public void convertToArray()
{
    int x = size();
    appArray = toArray(new Row[x]);
}
于 2013-02-27T19:04:12.697 に答える