fil*_*ran 0 java casting exception
我正在用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]);
}
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*rey 12
我假设你有一个"ClassCastException无法从[[I到[I"]转换.当你收到错误时,你应该认为这很重要,如果你不知道它意味着什么,你通常可以谷歌.
这里的神秘部分是内部,JVM调用int[]as [I和int[][]和[[I .[开头意味着它是一个数组而且I是简短的int,还有Zboolean,Bfor bytes,S简称,Cfor characters,Ffor float,Dfor double和J很久了 J是之后的信I.内置类开始L和结束; 我会被诱惑L长期和JJava类,但这只是我;)
你不能这样做
(int [ ]) o1;
Run Code Online (Sandbox Code Playgroud)
因为o1实际上int[][]不是一个int[],你不能在不兼容的类型之间转换.