【问题标题】:Convert ArrayList to Array throws java.lang.ArrayStoreException将 ArrayList 转换为 Array 抛出 java.lang.ArrayStoreException
【发布时间】:2013-02-13 17:34:22
【问题描述】:

我有一个方法 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 是否有元素不应该抛出错误?

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

【问题讨论】:

标签: java arrays exception arraylist throws


【解决方案1】:

抛出 ArrayStoreException 表示尝试将错误类型的对象存储到对象数组中。

所以,

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2017-06-02
    • 2020-04-26
    • 1970-01-01
    • 2012-02-09
    • 2019-05-17
    • 2019-04-10
    相关资源
    最近更新 更多