我通过方法调用得到一个对象。它是一个带行和列的栅格/网格/矩阵。但该方法的返回类型是一个对象。
在调试时,我可以在里面看到2D数组。但我无法将它投入任何东西。
Object vPixels = pixelblock3.getPixelDataByRef(0);
Integer[][] wPixels = (Integer[][]) vPixels;
我在第二行得到一个ClassCastException:
[[B cannot be cast to [[Ljava.lang.Integer;
如何解决此问题?
答案 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 [] []所以他的回答是正确的。