我想將我的JfreeChart 1.0.9更新到1.0.19。 在我的應用程序中,我通過序列化在zip中保存了一些對象並加載它,然後我再次反序列化它。 (簡單) 現在,當我將JFreeChart更新爲新版本時,JfreeChart的DataRange類給我帶來了麻煩。改變類型的Libary類的反序列化
我得到這個錯誤:
Errror occured while importing a project: java.io.InvalidClassException: org.jfree.data.time.DateRange; incompatible types for field lowerDate
我分析DATERANGE類的,也找到了問題。
DateRange.java 1.0.9:
public class DateRange extends Range implements Serializable {
/** For serialization. */
private static final long serialVersionUID = -4705682568375418157L;
/** The lower bound for the range. */
private Date lowerDate;
/** The upper bound for the range. */
private Date upperDate;
...
DateRange.java 1.0.19:
public class DateRange extends Range implements Serializable {
/** For serialization. */
private static final long serialVersionUID = -4705682568375418157L;
/** The lower bound for the range. */
private long lowerDate;
/** The upper bound for the range. */
private long upperDate;
...
你應該看到這個問題。字段lowerDate和upperDate的類型從java.util.Date更改爲long。 現在我無法再反序列化現有項目。 (對於新項目,這不是問題)
你有解決方案如何解決它?
我唯一的想法解決它,是要修改源並添加下面的方法到DateRange.java這裏解釋:Serialization
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException{
}
但我不希望修改jfreechart的時候有可能。