【发布时间】:2014-02-17 15:35:40
【问题描述】:
我已将 ArrayList 传递给另一个方法。 在这种方法中,我需要从 ArrayList 中提取结果集并对其进行迭代。 结果集正在传递没有问题。
问题是试图从数组中提取结果集,因此我无法做到 结果集 = GUIsidearray.get(0);不起作用,因此我不能做 while(resultSet.next()).
请参阅下面的一些代码示例。 任何帮助将不胜感激。
public void updateLocal(ArrayList<ArrayList<Object>> GUIsidearray) {
System.out.println("Get passed Array Value " + GUIsidearray.get(0));
// Shown in console -> Get passed Array Value
// [sun.jdbc.odbc.JdbcOdbcResultSet@1adc30] //
ResultSet resultSet
resultSet = GUIsidearray.get(0);
boolean emptyRs = true;
try {
while (resultSet.next()) {
emptyRs = false; // If ResultSet is empty
String Serno = (resultSet.getString("Serialnumber"));
System.out.println("Serial Number " + Serno);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
【问题讨论】:
-
尝试使用for每个循环
-
定义“不起作用”。
ArrayList<Object>不是ResultSet所以你不能指望ResultSet resultSet = GUIsidearray.get(0);编译。 -
不起作用 = resultSet = GUIsidearray.get(0); -> 将“resulSet”的类型更改为“ArrayList
-
我想是因为这个ArrayList > GUIsidearray GUIsidearray是一个ArrayList,而GUIsidearray里面是另一个ArrayList。并且 GUIsidearray.get(0) 将返回 ArrayList
-
您应该发布调用 updateLocal(...) 函数的代码。我相信是你造成了那里的问题(或者至少它有助于我们了解你想要实现的目标)。