gpt4 book ai didi

java - 为什么可以将 int[] 转换为 Object,而不是 Object[]?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:58:29 25 4
gpt4 key购买 nike

所以这是可行的:

int i;
Object a = (Object) i;
int[] t;
Object b = (Object) t;
String[] s;
Object[] t = (Object[]) s;

但这不是:

int[] t;
Object[] z = (Object[]) t;

总而言之,我得到了第一部分(拳击),但我发现第二部分不起作用是非常不直观的。是否有特定原因(除了继承自 Object 的 String 和不继承自 Object 的 int)?

编辑:

为了完善我的问题,这也有效:

int a = 2;
int b = 3;
int c = 4;
int d = 2;
Object[] o = new Object[] {a,b,c,d};

但是下面的不是:

int[] t = (int[]) o;

令人惊讶的是,您在使用 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;

在最后一行产生类转换异常。这仍然有效:

Object[] sy = (Object[])new String[]{sa,sb,sc,sd};
String[] sz = (String[]) sy;

最佳答案

int[] 是一个基元 数组,也是一个对象本身。它不是对象数组

数组不支持自动装箱。您需要选择正确的数组类型作为开始,而不是在运行时转换它。

关于java - 为什么可以将 int[] 转换为 Object,而不是 Object[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com