ClassCastException与更新版本的类

时间:2014-06-23 04:39:59

标签: java serialization

我已达到需要定义新版本类的阶段。使用我的新类定义,添加了一些方法,一些数据成员类型已更改。我的问题是,如何继续为我的老客户服务,同时确保我的服务器不变。

异常

java.io.InvalidClassException: com.mcruiseon.carpool.concrete.SubscribeJourneyConcrete; incompatible types for field isJourneyActive

我的新课程没有isJourneyActive

我知道我在这里缺少一些基本的东西,与检查serialVersionUID

有关

1 个答案:

答案 0 :(得分:0)

一个建议是,只要方法不再存在,就弃用它。

实现它的一种方法是使用不推荐使用该方法的中间版本。

因此在版本1上,方法isJourneyActive正在使用 在版本2上,方法isJourneyActive仍在使用,但您希望您的客户开始使用方法setJourneyActive,因此您不推荐使用isJourneyActive 在版本3上,方法isJourneyActive不再存在,或者它存在,但它只是在用户尝试使用它时抛出异常。

还有其他方法,但它们比仅弃用方法更复杂。