实现序列化的类中,所有的成员变量类型均需要实现Serializable接口。当JAR中的类未实现序列化,但又想实现序列化功能,除了反编译后修改类并替换JAR类外,还可以通过子类继承的方法。
例如:OpenCV中的Point类未实现Serializable接口
新建类SerialPoint,继承Point接口,再实现Serializable接口,此类便可实现序列化,如下:
需要注意的是:类SerialPoint类在序列化和反序列化时,Point中的x,y值会被忽略,因为Point类中并没有实现Serializable接口,即只在子类中实现Serializable接口并不能让父类实现序列化。解决的方法是在SerialPoint方法中实现writeObject和readObject,对父类中的变量x,y赋值。