通常是什么原因得到java.lang.ClassCastException ..?我的应用程序中出现以下错误
java.lang.ClassCastException: [Lcom.rsa.authagent.authapi.realmstat.AUTHw
Run Code Online (Sandbox Code Playgroud)
Lau*_*ălu 45
根据文件:
抛出以指示代码已尝试将Object其转换为不是实例的子类.例如,以下代码生成ClassCastException:
Object x = new Integer(0);
System.out.println((String)x);
Run Code Online (Sandbox Code Playgroud)
mR_*_*r0g 16
一个ClassCastException当您试图投对象的实例的类型,它不是ocurrs.仅当转换对象遵循与您尝试强制转换的类型的"是"关系时,转换才有效.例如
Apple myApple = new Apple();
Fruit myFruit = (Fruit)myApple;
Run Code Online (Sandbox Code Playgroud)
这是因为苹果'是'水果'.但是,如果我们改变这一点
Fruit myFruit = new Fruit();
Apple myApple = (Apple)myFruit;
Run Code Online (Sandbox Code Playgroud)
这将抛出一个ClasCastException,因为Fruit不是(总是)Apple.
最好instanceof 先用支票来保护任何明确的演员:
if (myApple instanceof Fruit) {
Fruit myFruit = (Fruit)myApple;
}
Run Code Online (Sandbox Code Playgroud)
@LaurenţiuDascălu的答案解释了如何/为何获得ClassCastException.
你的异常消息看起来很可疑,但它可能会帮助你知道"[Lcom.rsa.authagent.authapi.realmstat.AUTHw"意味着你试图投射的对象的实际类型是com.rsa.authagent.authapi.realmstat.AUTHw[]; 即它是一个数组对象.
通常,解决此类问题的后续步骤是:
| 归档时间: |
|
| 查看次数: |
199090 次 |
| 最近记录: |