java 中的继承,将子类转换为超类



我正在用java编写一个软件,这个继承问题总是会出现。有趣的是,当我在IDE(Eclipse Kepler)中运行程序时,我没有遇到问题,但是一旦我将其导出到可执行的jar,问题就开始了。我想我是唯一一个遇到这个问题的人,因为谷歌上的所有搜索都显示直接相反。

我的问题是我有一个名为 VoteType 的接口。此接口由几个具体类实现。我使用 XMLEncoder 将具体实现保存到文件中,并使用 XMLDecoder 检索它。

但是当我尝试将其转换为它实现VoteType的接口时,我得到了一个ClassCastException。可能是什么原因造成的?

您不够精确,无法跟踪这一点,但我假设通过 XMLDecoder 创建的接口和实现接口的对象是由不同的类加载器创建的。难道是这个原因吗?

另请参阅此问题:由于类加载器问题而导致的 ClassCastException 的解决方案

最新更新