[英]Why constructor is not called for the parent class while deserialization?
我有2個X和Y類。
public class Z extends Y implements Serializable{
private String a;
// getter and setter
}
public class Y{
private int age;
public Y() {
this.age = 10;
}
}
現在,我將這個Y對象序列化。 然后反序列化它。
age - 10 // constructor is called here.
a - myname
現在,我又審理了另一個案件。
我有2個X類,Y和Z類。
public class X implements Serializable{
private String s;
public class Y extends X {
private int age;
public Y() {
this.age = 10;
}
}
public class Z extends Y implements Serializable{
private String a;
}
現在在這里,當我反序列化Z對象時,構造函數未得到執行。
它正在打印我在序列化過程中設置的值。
這是為什么?
最接近的不可序列化基類的no-args構造函數被調用。
在第一種情況下,它是Y()。
在第二種情況下,這是X基類的構造函數,即Object()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.