我有一个方法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();
}
我收到相同的错误消息。有什么想法吗?我想如果它在转换它之前检查ArrayList
有元素,那么不应该抛出错误吗?
如果需要,我可以提供完整的错误
答案 0 :(得分:17)
抛出ArrayStoreException以指示已尝试将错误类型的对象存储到对象数组中。
所以,
public Row[] appArray; // Row - because you extend ArrayList<Row>
public void convertToArray()
{
int x = size();
appArray = toArray(new Row[x]);
}