Luc*_*ner 3 java arrays primitive casting
这样可行:
int i;
Object a = (Object) i;
int[] t;
Object b = (Object) t;
String[] s;
Object[] t = (Object[]) s;
Run Code Online (Sandbox Code Playgroud)
但这不是:
int[] t;
Object[] z = (Object[]) t;
Run Code Online (Sandbox Code Playgroud)
总而言之,我得到了第一部分(拳击),但我发现第二部分不起作用非常不直观.是否有一个特定的原因(除了继承自Object的String和int不继承自Object)?
编辑:
为了优化我的问题,这也有效:
int a = 2;
int b = 3;
int c = 4;
int d = 2;
Object[] o = new Object[] {a,b,c,d};
Run Code Online (Sandbox Code Playgroud)
但是接下来没有:
int[] t = (int[]) o;
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是你遇到了与String相同的问题:
String sa = "a";
String sb = "b";
String sc = "c";
String sd = "d";
Object[] so = new Object[] {sa,sb,sc,sd};
String[] st = (String[]) so;
Run Code Online (Sandbox Code Playgroud)
在最后一行产生一个类强制转换异常.这仍然有效:
Object[] sy = (Object[])new String[]{sa,sb,sc,sd};
String[] sz = (String[]) sy;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6173 次 |
| 最近记录: |