如何在序列化时访问静态变量

时间:2014-11-07 09:31:23

标签: java serialization static

我有:

public class Mouse implements Serializable {


    int i=100,j=200;
    static int k=100;



    public static void main(String[] args) throws IOException {

        Mouse m=new Mouse();

        FileOutputStream fos=new FileOutputStream("E:\\santosh.txt");
        ObjectOutputStream os=new ObjectOutputStream(fos);
        os.writeObject(m);
        os.flush();
        System.out.println("success");

        os.writeObject(m);
        os.flush();

    }

 public class Cat {


    public static void main(String[] args) throws IOException, ClassNotFoundException {

        FileInputStream fis=new FileInputStream("E:\\santosh.txt");
        ObjectInputStream oi=new ObjectInputStream(fis);

        Mouse m=(Mouse) oi.readObject();

        System.out.println("i="+m.i+" j="+m.j);
        System.out.println("k="+m.k );
    }
}

我得到的输出为i = 100 j = 200 K = 100 。如何访问静态变量。

1 个答案:

答案 0 :(得分:1)

它根本没有序列化,因此在序列化时也不会被访问。它的值在接收器处不受干扰。它最初声明为100,这就是你所看到的。