我正在用Java学习算法,我不明白为什么在第7行显示错误?
class Test {
public static void main(String [ ] args) {
int [ ] [ ] a = { {1,2}, {3,4} };
int [ ] b = (int [ ]) a[1];
Object o1 = a;
int [ ] [ ] a2 = (int [ ] [ ]) o1;
int [ ] b2 = (int [ ]) o1;
System.out.println(b[1]);
}
}
答案 0 :(得分:12)
我假设你有一个“ClassCastException无法从[[I到[I”]转换。当你收到错误时,你应该认为它很重要,如果你不知道它意味着什么,你通常可以谷歌。
这里的神秘部分是内部,JVM将int[]
称为[I
,int[][]
和[[I
[
一开始意味着它是一个I
数组int
是Z
的缩写,布尔值B
,字节S
,简称C
,F
字符,D
代表浮点数,J
代表双倍,J
代表。 I
是L
之后的字母。内置的类以;
开头,以L
结尾我本来很想让J
为长(int [ ]) o1;
为Java类,但那只是我;)
你不能这样做
o1
因为int[][]
实际上是int[]
而不是...
-C, --line-bytes=SIZE
put at most SIZE bytes of lines per output file
...
,并且您无法在不兼容的类型之间进行转换。