gpt4 book ai didi

java - Java 中的对象类型和引用数组

转载 作者:太空狗 更新时间:2023-10-29 22:49:14 25 4
gpt4 key购买 nike

public class RefMix {
public static void main(String[] args) {
Object[] a = {null, "foo"};
Object[] b = {"bar", b};
a[0] = b;

System.out.println(a[0][0]);
}
}

我的理解是,数组是 Java 中的对象,因此是 Object 类型的子类。我进一步的理解是,一个 2-dim 数组是作为对数组的引用的数组来实现的。因此我不明白为什么我的 a[0][0] 在上面的代码中没有生成 bar 。相反,它不编译:

RefMix.java:7: array required, but java.lang.Object found

最佳答案

My understanding is that arrays are objects in Java, and therefore a subclass of the Object type. My further understanding is that a 2-dim array is implemented as an array of references to arrays.

这一切都是正确的,并解释了为什么你可以完成作业

a[0] = b;

编译器没有任何投诉。

Therefore I don't understand why my a[0][0] does not produce bar in the code above.

好吧,让我们看一下这个表达式中的类型:

  • a 是一个 Object[] -- 这是一个 Object 的数组
  • a[0] 是一个对象
  • a[0][0] -- 现在您正尝试在 Object 上使用数组下标。编译器不知道 Object 实际上是一个数组,所以它会报错。

关于java - Java 中的对象类型和引用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764931/

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