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

标签 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]);
}

当我调用 addApplication(Row app) 方法时出现错误:java.lang.ArrayStoreException

所以我将我的 addApplicant() 方法更改为:

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

我收到相同的错误消息。任何想法为什么?我想如果它在转换之前检查 ArrayList 是否有元素,就不应该抛出错误?

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

最佳答案

ArrayStoreException thrown to indicate that an attempt has been made to store the wrong type of object into an array of objects.

所以,

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

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

关于java - 将 ArrayList 转换为 Array 抛出 java.lang.ArrayStoreException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120089/

相关文章:

sharepoint - 场类型初始化程序异常中的 MOSS 2007 站点

arrays - 如何在尊重其原始索引的同时提取数组的元素并将其插入另一个元素

javascript - 从数组中删除重复项只返回一个对象

c# - 如何模拟 "Throws"和 "ThrowsAsync"中的异常类型

java - 将图表保存为 pdf 时消除模糊图表

php - 合并2个没有重复键的数组

sockets - 在集群之间运行hadoop distcp -update时发生SocketTimeoutException

java - Netty SslHandler 抛出 IllegalReferenceCountException

java - Hibernate MS SQL 连接

java - 如何创建由 gradle 预编译运行的注释处理器以将代码添加到方法中?