将ArrayList转换为Array会抛出java.lang.ArrayStoreException

Hog*_*790 5 java arrays exception arraylist throws

我有一个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]);
}
Run Code Online (Sandbox Code Playgroud)

}

当我调用该addApplication(Row app)方法时,我得到错误:java.lang.ArrayStoreException

所以我改变了我的addApplicant()方法:

 public void addApplicant(Row app)
 {
    add(app);
    if (size() != 0)
    convertToArray();
}
Run Code Online (Sandbox Code Playgroud)

我收到相同的错误消息.有什么想法吗?我想如果它ArrayList在转换之前检查has元素,那么不应该抛出错误?

如果需要,我可以提供完整的错误

Ant*_*n-M 17

抛出ArrayStoreException以指示已尝试将错误类型的对象存储到对象数组中.

所以,

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

public void convertToArray()
{
    int x = size();
    appArray = toArray(new Row[x]);
}
Run Code Online (Sandbox Code Playgroud)