List<List<Object>> EventAll = new ArrayList<List<Object>>();
while(rs1.next())
{
List<Object> row = new ArrayList<Object>();
/*EventAll.add(rs1.getRow(), row);*/
row.add(rs1.getString("eventName"));
row.add(rs1.getString("duration"));
row.add(rs1.getString("playhead"));
EventAll.add(row);
}
String[][] stringArray = EventAll.toArray(new String[EventAll.size()][]);//line 66
在上面的示例中,您可以看到我有List<List<Object>>
,我在while循环中为其添加了列值。在这一点上它对我来说很好。
但是当我尝试使用toArray()
方法将其转换为多维数组时,我遇到以下异常:
****EXCEPTION:**java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.ArrayList.toArray(Unknown Source)
at DataFromMySql.main(DataFromMySql.java:66)**
答案 0 :(得分:2)
/user/34/games/55/
答案 1 :(得分:2)
toArray
可以将您的List<List<String>>
(您应该,BTW,将您的List<List<Object>>
更改为List<List<String>>
)转换为List<String>[]
,而不是转换为String[][]
}。
它还可以将每个内部List<String>
转换为String[]
。
因此,您必须创建二维数组,并使用EventAll.get(i).toArray(new String[EventAll.get(i).size()])
分别初始化该数组的每一行。
答案 2 :(得分:0)
请注意,只有当您的内部列表具有相同的长度且所有对象都是字符串时,这才有效!
String[][] array = new String[list.size()][list.get(0).size()];
System.out.println();
int i = 0;
for (List<Object> l : list ) {
int j = 0;
for (Object obj : l) {
array[i][j] = (String) obj;
j++;
}
i++;
}