gpt4 book ai didi

java - 非泛型类如何导致运行时错误

转载 作者:行者123 更新时间:2023-11-30 01:44:55 26 4
gpt4 key购买 nike

我一直在学习泛型并浏览了 docs.oracle.com 中的一些示例

在 oracle 的教程中,它说:“代码的一部分可能会在框中放置一个整数,并期望从中取出整数,而代码的另一部分可能会错误地传入一个字符串,从而导致运行时错误。 ”

我重新创建了以下框类,他们将其用作非泛型类的示例,以尝试创建运行时错误以更好地理解泛型,但是我未能成功。

盒子类如何会因为不是泛型类而导致运行时错误?我很想看到一个例子,因为我自己无法创建一个例子。

public class box {

private Object object;

public void set (Object object) {
this.object = object;
}
public Object get() {
return object;
}
}

最佳答案

您可以通过构造一个包含 String 并期望获取 IntegerBox 对象来重现该问题。为了让编译器接受这一点,您需要使用显式强制转换:

Box b = new Box();
b.set("a string");
Integer i = (Integer) b.get();

最后一行将失败并出现 ClassCastException

关于java - 非泛型类如何导致运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58464039/

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