首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.lang.ClassCastException

java.lang.ClassCastException
EN

Stack Overflow用户
提问于 2010-08-18 18:39:42
回答 5查看 244.8K关注 0票数 28

通常情况下,获取java.lang.ClassCastException的原因是什么?我在我的应用程序中得到以下错误

java.lang.ClassCastException: [Lcom.rsa.authagent.authapi.realmstat.AUTHw
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-08-18 18:41:57

根据the documentation的说法

抛出以指示代码试图将Object强制转换为它不是其实例的子类。例如,下面的代码生成一个ClassCastException

Object x = new Integer(0);
System.out.println((String)x); 
票数 50
EN

Stack Overflow用户

发布于 2010-08-18 19:19:25

当您尝试将对象的实例强制转换为不是该对象的类型时,就会发生ClassCastException。仅当强制转换的对象遵循与您试图强制转换的类型的"is a“关系时,强制转换才有效。例如

Apple myApple = new Apple();
Fruit myFruit = (Fruit)myApple;

这是因为苹果“是”一种水果。然而,如果我们颠倒这一点。

Fruit myFruit = new Fruit();
Apple myApple = (Apple)myFruit;

这将抛出一个ClasCastException,因为水果并不总是苹果。

最好先用instanceof检查保护任何显式类型转换:

if (myApple instanceof Fruit) {
  Fruit myFruit = (Fruit)myApple;
}
票数 23
EN

Stack Overflow用户

发布于 2010-08-18 18:41:32

这是因为您转换为错误的对象-您正在尝试转换为特定类型,而您的表达式引用的对象与该类型不兼容。例如:

Object x = "this is a string";
InputStream y = (InputStream) x; // This will throw ClassCastException

如果你能提供一个代码样本,那将会很有帮助...

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3511169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档