gpt4 book ai didi

java - 二线 Actor 有什么问题?

转载 作者:行者123 更新时间:2023-11-29 10:03:24 24 4
gpt4 key购买 nike

Object arr = new int[]{1,2,3};
arr = (int[])arr;

int someArr [] = (int[])arr;

for(int i:arr) // compilation error
System.out.println(i);

for(int i:someArr) //works fine
System.out.println(i);

为什么第二行的转换没有将 arr 转换为 int 数组?我在第 4 行收到一个编译错误,它说“只能迭代数组或 java.lang.Iterable 的实例”。调试时,在第 2 行,变量快照显示带有索引值的 arr。

最佳答案

语句 arr = (int []) arr 首先尝试将存储在 arr 中的值转换为 int []。然后,为了能够进行赋值,它尝试将 = 右侧的结果转换为左侧变量的类型。由于左侧变量的类型是 Object,因此 int [] 被转换回 Object。所以 arr 仍然是 Object

我们从中学到了什么?您不能更改变量的声明类型。绝不。特别是,您不能通过为它分配任何其他类型的东西来做到这一点。要么赋值有效并且赋值被强制转换为声明的变量类型,要么赋值失败。变量的类型永远不会改变。

关于java - 二线 Actor 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16250132/

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