如何访问对象内的2D数组?

时间:2012-12-30 21:02:02

标签: java object casting

我通过方法调用得到一个对象。它是一个带行和列的栅格/网格/矩阵。但该方法的返回类型是一个对象。

在调试时,我可以在里面看到2D数组。但我无法将它投入任何东西。

Object vPixels = pixelblock3.getPixelDataByRef(0);
Integer[][] wPixels = (Integer[][]) vPixels;

我在第二行得到一个ClassCastException: [[B cannot be cast to [[Ljava.lang.Integer;

如何解决此问题?

2 个答案:

答案 0 :(得分:3)

猜猜:尝试:

int[][] wPixels = (int[][]) vPixels; 

byte[][] wPixels = (byte[][]) vPixels; 

我认为[[B,“B”表示原始字节。

答案 1 :(得分:0)

了解对象类型的简单技巧:

Object vPixels = pixelblock3.getPixelDataByRef(0);
Class cls = vPixels.getClass();
System.out.println("The type of the object is: " + cls.getName());

然后你可以投射到合适的类型。

编辑: 正如Luigi所指出的那样[[B表示byte [] []所以他的回答是正确的。