java - 将对象数组转换为 ArrayList 时出现问题

标签 java arrays arraylist

我创建了一个对象,其中包含针对数据库运行的查询的所有结果。然后将这些结果存储在数组中。

我正在尝试将此数组转换为 ArrayList,以便可以将其用于导入到文档中。

我已经尝试过:

//trustSummary is the name of my array
ArrayList data = new ArrayList(Arrays.asList(trustSummary));

但是当我尝试在应用程序的另一部分运行以下代码时,这似乎会导致问题(ClassCastException)。请任何人指出解决此问题的正确方向。

for (Iterator rows = data.iterator(); rows.hasNext();)
   ArrayList row = (ArrayList) rows.next();

最佳答案

您在编写 new ArrayList(Arrays.asList(trustSummary)); 的部分中使用的 ArrayList(Collection) 构造函数使用源集合中的元素创建一个 ArrayList,它不会创建一个使用另一个集合作为元素的 ArrayList

因此您需要修复该行,或更改该行

ArrayList row = (ArrayList) rows.next();

TrustSummary ts = (TrustSummary) rows.next();

一般来说,我建议使用泛型,以避免对集合类型的这种混淆。

在您的情况下,例如

List<TrustSummary> summaries = new ArrayList<TrustSummary>(Arrays.asList(trustSummary));

关于java - 将对象数组转换为 ArrayList 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14875661/

相关文章:

java - PushbackReader 等效项

java - 查询语法异常 : Unexpected token *

javascript - 用 Javascript 中的对象填充数组

java - 在 Java 中复制包含对象的双 ArrayList (ArrayList<ArrayList<Object>>>)

Java ArrayList toArray避免复制

Java创建多个数组列表

java - 在java上通过TLE的代码优化建议

java - Guice 如何根据 String id 提供不同的子类实例

java - byte[] 数组在输入 SQLiteDatabase 之前和之后有所不同

java - 无法在类中的两个数组之间使用相等运算符来模仿 ArrayList 的工作原理