我有一个有趣的情况,EMF 强迫我进入:
abstract class AbstractDog{
...
}
public class Dog extends AbstractDog{
< implemented code >
}
public class DogTemplate extends AbstractDog{
< implemented code identical to Dog >
}
在 Dog 和 DogTemplate 中找到的代码实际上是相同的(不要问 - 我们的系统非常依赖 Eclipse 的东西,这是唯一的方法)。我需要从 DogTemplate 转换为 Dog,但是java.lang.ClassCastException
当我这样做时会得到Dog d = (Dog) dogTemplateInstance
。我完全理解为什么会发生这个异常,所以请不要告诉我为什么。
我需要知道的是,是否有任何方法可以利用两个类之间的共同祖先关系来实现这种转换?