一个类需要序列化,它有一个成员变量,没有实现序列化.
这个类该如何实现序列化?代码如下:
  public final class Operator implements Serializable{       // 有个自动生成的id,不写了。       private Type mA = null; // Type没有实现序列化。       public void setA(Type a) {
          mA = a;
       }}Type 是别人实现的,涉及JNI,改动可能会比较麻烦。
如果不改动Type的定义,可以实现Operator的序列化吗?

解决方案 »

  1.   


    private transient Type mA ;
      

  2.   

    自己完成readObject()和writeObject() method即可
    更不不是什么问题,加强序列化本质理解
      

  3.   

    public final class CatalogOperator{ // change to false when do not to see debugging log info.
    final static boolean mShowDebuggingInfo = true;
    // catalog entity
    public static CEBXOutlineWrapper mOutline = null; // stack of parent of visited nodes
    Stack<CEBXOutlineElemWrapper> mStack = null; // catalog to go to.
    private static CxGotoDest mCatalogDest = null;
    }就这个我想序列化. 两个静态的我想去掉静态(因为不会序列化,所以用静态变量来传递信息)。
      

  4.   

    4楼应该是正解。写各类继承Type,再写readObject()和writeObject() 
      

  5.   

    请问4楼:
    Serializable 并没有 readObject 这个接口啊?你说的什么意思 ?
    我java菜鸟。
      

  6.   

    明白了readObject,writeObject了,现在的问题是,
    假设Type(参见问题)定义如下,而且不可变更其定义,怎么写 readObject,writeObject.public class Type{
    private long mHandle; public Type(long handle) {
    mHandle= handle;
    }
    //其他成员函数,没有获取 mHandle的函数 (get方法)。
    }
    这里怎么写readObject ?