假设我有两个完全不同的用户定义类A
和B
。
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?
答案 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类,我就无法看到这项任务带来的好处。