将Java数组数组转换为Java 2D数组

时间:2017-02-07 00:59:12

标签: java arrays casting

我有一个Object[]类型的对象。数组的所有元素实际上都是Object[]个对象。所以基本上看起来像这样

Object[] oneD = {objectArray1, objectArray2, objectArray3, ...}

我想将其转换为Object[][],如下所示:

Object[][] twoD = (Object[][])oneD;

但是我收到编译器错误和ClassCastException

有(正确的)方法吗?

3 个答案:

答案 0 :(得分:2)

你不能在数组类型之间强制转换 - java不是C,但你可以很容易地转换它:

Object[] oneD = {new Object[]{}, new Object[]{}, ...};
Object[][] twoD = Arrays.stream(oneD).map(Object[].class::cast).toArray(Object[][]::new);

答案 1 :(得分:1)

简单地说就是

ButtonDownFcn

答案 2 :(得分:0)

假设内部Object数组具有相同的大小,您可以这样做:

    Object[] asdf = {new Object[3], new Object[3], new Object[3]};
    Object[][] newAsdf = {{asdf[0]}, {asdf[1]}, {asdf[2]}};