java - 在 Java 中将 List<Object[]> 转换为 Object[][]

标签 java arrays list casting classcastexception

Java中如何将数组List转为二维数组?

//Prepare the list
List<Object[]> conf = new LinkedList<Object[]>();
conf.add(new Object[]{ "FOO", "BAR"});
conf.add(new Object[]{ "FOO", "BAR"});

我试过:

Object[][] array = (Object[][]) conf.toArray(new Object[0]);

但它在 ClassCastException 处失败:

java.lang.RuntimeException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.Object;

最佳答案

您缺少一对方括号:

    Object[][] array = conf.toArray(new Object[0][]);
                                                 ^^

或者,如果您希望节省一次不必要的内存分配:

    Object[][] array = conf.toArray(new Object[conf.size()][]);

一旦 toArray() 的参数具有正确的类型,就不需要强制转换为 Object[][]

关于java - 在 Java 中将 List<Object[]> 转换为 Object[][],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15919948/

相关文章:

javascript - JavaScript中索引数组的多维索引

arrays - 从文件中读取多级哈希并将特定值推送到单独的数组

php - 使用 "mysql_fetch_row"从数据库中检索结果并使用 PHP 和 mysqli 插入数组?

r - 在两列中按数据子集

Python:生成数字 1-10 的列表,但 1 出现在列表的末尾?

java - ZK Combobox 事件在 MVVM 中未触发

java - 来自 Guava 或 Java 枚举的 ImmutableSet

java - 如何使从oracle返回的结果集保持其列别名字符大小写

java - 转换 Query.getResultList() 的输出

html - 在无序列表上隐藏点