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

时间:2013-10-02 19:42:24

标签: eclipse inheritance classcastexception

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

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

但是当我尝试将其强制转换为实现VoteType的界面时,我得到了ClassCastException。什么可能导致这个?

1 个答案:

答案 0 :(得分:0)

你不够精确地跟踪它,但我认为接口和实现接口的对象以及通过XMLDecoder创建的对象是由不同的类加载器创建的。这可能是原因吗?

另请参阅此问题:Solution for the ClassCastException due to ClassLoader issue