转换的ArrayList到数组抛出java.lang.ArrayStoreException [英] Convert ArrayList to Array throws java.lang.ArrayStoreException

查看:219
本文介绍了转换的ArrayList到数组抛出java.lang.ArrayStoreException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有 convertToArray()的方法其中的ArrayList 转换为一个数组。我希望每一个元素被添加到的ArrayList

时间调用此方法

 公共类表扩展的ArrayList<行>
{
公共字符串appArray []; //单申请人细节阵
公共字符串tableArray [] []; //每一个申请人的数组
/ **
 *构造类表对象
 * /
市民餐桌()
{
}公共无效addApplicant(行应用程序)
{
    加(应用);
    convertToArray();
}公共无效convertToArray()
{
    INT X =尺寸();
    appArray =的toArray(新的String [X]);
}

}

当我称之为 addApplication(行的应用程序)方法我得到的错误: java.lang.ArrayStoreException

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

 公共无效addApplicant(行应用程序)
 {
    加(应用);
    如果(大小()!= 0)
    convertToArray();
}

我得到同样的错误消息。任何想法,为什么?我想如果它检查的ArrayList 已转换之前元素的错误不应该抛出?

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


解决方案

  

ArrayStoreException信息抛出,指示已尝试做出了错误类型的对象存储到一个对象数组。


因此​​,

 公共行[] appArray; //行 - 因为你的ArrayList延长LT&;行>公共无效convertToArray()
{
    INT X =尺寸();
    appArray =的toArray(新行[X]);
}

i have a method convertToArray() which converts an ArrayList to an array. I want to call this method every time an element is added to the 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]);
}

}

When i call the addApplication(Row app) method I get the error: java.lang.ArrayStoreException

So I changed my addApplicant() method to:

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

I get the same error message. Any ideas why? I figured if it checks the ArrayList has elements before converting it the error should not be thrown?

I can provide the full error if needed

解决方案

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

So,

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

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

这篇关于转换的ArrayList到数组抛出java.lang.ArrayStoreException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆