java - 为什么要强制转换为同一类型?

标签 java arrays casting

任何人都可以解释为什么我会收到不兼容的类型错误并且应该 如果 ref[0] 已经是对象数组(class [Ljava.lang.Object;)

,则转换为 Object[]
public class Test {
    public static void main(String args[]) {
        Object[] ref = new Object[1];
        Object[] x = new Object[]{1};
        while (true) {
            ref[0] = new Object[]{ref};
            System.out.println(ref[0].getClass()); //class [Ljava.lang.Object;
            ref = ref[0]; // incompatible type error
        }

    }
}

最佳答案

在编译阶段,ref[0]的数据类型是Objectref的数据类型是Object[ ]

ObjectObject[] 不是同一类型。

关于java - 为什么要强制转换为同一类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50085404/

相关文章:

java - JavaFX 无限时间线中的内存泄漏

java - 如何设置弹出背景透明Java Fx

java - 如何仅删除 java 数组中参数的一个实例?

c++ - 指向基类的指针总是 <= 指向派生类的指针吗?

java - 在本地应用程序中指定 JAAS 配置文件

Java:双向组合示例

PHP - 匹配动态数组中的单词

javascript - 为什么我的对象键、值对被覆盖而不是创建新的键、值对?

iphone - 在 Objective-C 中测试类的类型

c++ - 如何找出 cstyle cast 的实际作用?