如何将ArrayList []事务转换为Transaction []数组

时间:2014-07-28 03:59:48

标签: java android arrays arraylist

我需要创建一个动态Listview,其中已填充已经在" Transaction"对象,但因为事务的数量可以是变量,首先我需要创建ArrayListTransaction个对象并将其转换为数组以将其传递给Listview适配器。我试图这样做:

ArrayList <Transaction> transaction_data2 = new ArrayList<Transaction>();
            transaction_data2.add(new Transaction("0000324455678", "25/05/2014","2.750,25"));
            transaction_data2.add(new Transaction("0000324456599", "25/05/2014","12.000,00"));
            transaction_data2.add(new Transaction("0000324456621", "26/05/2014","780,00"));
            transaction_data2.add(new Transaction("0000324456686", "27/05/2014","658,50"));
            transaction_data2.add(new Transaction("0000324456686", "27/05/2014","658,50"));
            transaction_data2.add(new Transaction("0000324456699", "27/05/2014","128,00"));

            Transaction transaction_data[] =  new Transaction[transaction_data2.size()]; 
            transaction_data = (Transaction[]) transaction_data2.toArray();

但我收到了这个错误:

  

java.lang.ClassCastException:java.lang.Object []无法强制转换为   com.myproyect.Transaction []

有什么建议吗?

提前多多感谢...

3 个答案:

答案 0 :(得分:4)

Transaction[] transaction_data = transaction_data2.toArray(new Transaction[transaction_data2.size()]);

请先研究:http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#toArray(T[])

答案 1 :(得分:1)

使用此:

        Transaction transaction_data[] =  new Transaction[transaction_data2.size()]; 
        transaction_data = (Transaction[]) transaction_data2.toArray(transaction_data);
没有参数的

toArray返回一个Object [],而当你传递一个数组时,它将用项填充该数组。

答案 2 :(得分:1)

尝试使用像This这样的东西。

ArrayList<Transaction > stock_list = new ArrayList<Transaction >();
stock_list.add("stock1");
stock_list.add("stock2");
Transaction [] stockArr = new Transaction [stock_list.size()];
 stockArr = stock_list.toArray(stockArr);
for(String s : stockArr)
    System.out.println(s);