Android中的序列化

我想在android中序列化paint和path。 当我向Objectoutputstream写一个对象时,会触发Notserializabaleexception。 我也在serializabale类中覆盖了writeObject()方法。

这是代码。

public class msgContainar implements Serializable { /** * */ public msgContainar() { } private static final long serialVersionUID = 1L; private Path pathStack; private Paint paintStack; public Path getPathStack() { return pathStack; } public void setPathStack(Path pathStack) { this.pathStack = pathStack; } public Paint getPaintStack() { return paintStack; } public void setPaintStack(Paint paintStack) { this.paintStack = paintStack; } private void writeObject(ObjectOutputStream out) throws IOException { try { Paint p=new Paint(); p.set(paintStack); Path path=new Path(); path.addPath(pathStack); out.writeObject(path); out.writeObject(p); }catch (Exception e) { Log.e("err",""+e); } } private void readObject(ObjectInputStream in) throws IOException{ try{ Paint p=new Paint(); p=paintStack; Path path=new Path(); path=pathStack; }catch (Exception e) { Log.e("err",""+e); } } } 

Path和Paint都没有实现Serializable接口。 要解决此问题,您可以创建自己的自定义子类,以扩展PathPaint并实现Serializable