如何摆脱ClassCastException

时间:2011-10-24 04:40:04

标签: java classcastexception

假设我有两个完全不同的用户定义类AB

A a = new A();

B b = new B();

. . .

. . .

a = (A) b; //I'm pretty sure this raises a ClassCastException, but how to deal with this issue?

2 个答案:

答案 0 :(得分:2)

你不能,除非B来自A.
这就是ClassCastException的重点。

但由于A和B完全不同,你为什么要首先转换它们呢?

答案 1 :(得分:0)

在分配变量之前进行测试。

在java中:

if(a instanceof B)
    b = (B) a;

在C#中:

if(a is B)
    b = (B) a;

但正如有人提到的,如果你没有从c中推导出a和b类,我就无法看到这项任务带来的好处。