gpt4 book ai didi

java - 此java代码是否有可能出现ClassCastException/IllegalStateException?

转载 作者:行者123 更新时间:2023-12-01 23:33:40 26 4
gpt4 key购买 nike

我对 classcastException 和非法状态异常都有点困惑,因为在大多数情况下它们看起来都很相似。

我在这个java代码中遇到了一个问题

 class consumer
{
LOC----
}

public class provider extends consumer
{
public static void main(String args[])
{
consumer st=new provider();
provider est=(provider)st;
}
}

我被这部分困住了。根据我的说法,它应该生成异常(类转换或非法状态)。但执行时没有异常,可能会出现classcastException或者非法状态异常。但是代码执行没有任何异常,原因???

我在异常处理方面有点周,努力掌握异常处理。任何人都可以解释为什么它没有在行中显示错误

    consumer st=new provider();     
provider est=(provider)st;

还解释了类转换和非法状态异常...

最佳答案

为什么这里会出现 ClassCastException?st 是一个 provider,您显式地创建了一个 provider 对象,因此将 provider 对象分配给 provider 类型的引用是好的。

唯一的事情是编译器不“知道”st 在运行时会指向 provider 对象。由于 st 的静态类型是 consumer,因此第二行需要显式转换为 provider。但这没什么特别的......

关于java - 此java代码是否有可能出现ClassCastException/IllegalStateException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19002984/

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