「シリアライゼーションは静的要素用ではありません」と読みましたが、以下の簡単な例はそうではないことを示しています。
class superparent implements Serializable {
int data = 0;
public superparent(int data) {
this.data = data;
}
public int getdata() {
return data;
}
}
public class statichost implements Serializable {
int member = 0;
public static superparent s = new superparent(20);
public statichost(int data) {
this.member = data;
}
public static void main(String[] args) {
statichost c = new statichost(6);
try {
FileOutputStream fs = new FileOutputStream("testSer.ser");
ObjectOutputStream os = new ObjectOutputStream(fs);
os.writeObject(c);
os.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
FileInputStream fis = new FileInputStream("testSer.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
c = (statichost) ois.readObject();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("after: contained data is " + c.s.getdata());
}
}
上記のステートメントに従って 0 を期待していた場合、出力は 20 を出力します。何か不足していますか?