gpt4 book ai didi

java.lang.ArrayStoreException : when assigning value with incorrect type to Object[] array 异常

转载 作者:搜寻专家 更新时间:2023-11-01 03:16:13 30 4
gpt4 key购买 nike

<分区>

我来自 C 背景。无法将 Object 添加到 foo() 中的 Object[] 对我来说没有意义。

我希望函数 foo 中的代码在运行时工作,但在我尝试执行 strings[0].toLowerCase( ); 因为 strings[0] 中的对象不是 String 但实际上是一个 StringBuilder 没有toLowerCase()。在一天结束时,我将一个指针存储到一个指针数组中,objects[0] = other 行应该不会无效。很明显我对 java 的理解是错误的(但我现在还很新)。

class Main {

static void foo(Object[] objects, Object other) {
objects[0] = other;
}
public static void main(String[] args) {
String[] strings = { "stringValue" };
foo(strings, new StringBuilder());
}
}

编辑:感谢大家的回答。多亏了@Andy Turner,我在谷歌上搜索了“数组的 Java 协方差”,然后找到了 this其中讨论了这种行为。诀窍在于编译器和运行时对待代码的方式非常不同。编译器可以处理代码,但运行时不行。

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