【发布时间】:2018-04-16 00:12:13
【问题描述】:
我正在做这样的事情:
public Object [] getApple() {
return new int[4];
}
但是 Java 编译器不允许这样做。 它说不能从 int[] 转换为 Object[]。
如果我这样做:
public Object getApple() {
return new int[4];
}
它编译得很好。 谁能解释为什么 int [] 不能隐式转换为 Object []?
【问题讨论】:
-
Object[]与int[]不同,因为您只考虑元素的类型,而不是数组本身。它们不一样;而Object[]是Object的孩子(一切都是),因此可以编译。 -
int 是 primitif 而 Object 不是所以你不能返回它。如果你想返回 int,我建议你使用 Integer[4]。
-
Object[] 期望返回一个对象数组。而 int 数组 (int[]) 是单个对象。例如,如果您要返回 2 个或更多 int 数组,它们将适合对象数组