2

由于方法调用,我得到了一个对象。它是具有行和列的栅格/网格/矩阵。但是方法的返回类型是一个对象。

在调试时,我可以看到里面的二维数组。但我无法把它变成任何东西。

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

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

我该如何解决这个问题?

4

2 回答 2

3

只是一个猜测:尝试:

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

或者

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

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

于 2012-12-30T21:08:56.203 回答
0

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

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

然后您可以转换为适当的类型。

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

于 2012-12-30T21:11:37.300 回答