演员表&LT;对象[]&GT;到对象[] []在Java中 [英] Cast List<Object[]> to Object[][] in Java
本文介绍了演员表&LT;对象[]&GT;到对象[] []在Java中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何打开列表阵列成二维数组在Java中?
// prepare名单
清单&LT;对象[]&GT; CONF =新的LinkedList&LT;对象[]&GT;();
conf.add(新的对象[] {FOO,BAR});
conf.add(新的对象[] {FOO,BAR});
我试过:
对象[] []数组=(对象[] [])conf.toArray(新对象[0]);
但它在 ClassCastException异常
失败:
了java.lang.RuntimeException:java.lang.ClassCastException:[Ljava.lang.Object;不能转换为[Ljava.lang.Object;
解决方案
您缺少一对括号的:
对象[] []数组= conf.toArray(新对象[0] []);
^^
或者,如果你想保存在一个不必要的内存分配:
对象[] []数组= conf.toArray(新对象[conf.size()] []);
演员到对象[] []
是不必要的,一旦参数的toArray()
具有正确的类型
How to turn List of arrays into two dimensional array in Java?
//Prepare the list
List<Object[]> conf = new LinkedList<Object[]>();
conf.add(new Object[]{ "FOO", "BAR"});
conf.add(new Object[]{ "FOO", "BAR"});
I tried:
Object[][] array = (Object[][]) conf.toArray(new Object[0]);
But it fails at ClassCastException
:
java.lang.RuntimeException: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [[Ljava.lang.Object;
解决方案
You are missing a pair of square brackets:
Object[][] array = conf.toArray(new Object[0][]);
^^
Or, if you wish to save on one unnecessary memory allocation:
Object[][] array = conf.toArray(new Object[conf.size()][]);
The cast to Object[][]
is unnecessary once the argument to toArray()
has the correct type.
这篇关于演员表&LT;对象[]&GT;到对象[] []在Java中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文