public class Employee implements java.io.Serializable
{
public String name;
public int transient id;
}
假設我們正在序列化......瞬態int的反序列化值?
Employee e = new Employee();
e.name="REUBEN";
e.id=94731;
現在,如果我反序列化這則
System.out.println("Name: " + e.name); will give the o/p REUBEN
System.out.println("ID: " + e.id); will give the o/p 0
很顯然,作爲id
是transient
它沒有發送到輸出流。
我的問題是,這個零是默認值int
?
我們不保存狀態,所以它給出的輸出爲0
,但它也是一個值。不應該是null
?
是的。但我不建議依賴它爲'0'(概念上,它是一個未初始化的變量)。 –
你的例子非常糟糕。瞬態修飾符指示一個字段不應該被視爲對象的永久狀態的一部分。 ID通常是員工永久狀態的重要組成部分。 – emory
埃默裏所說的和@機械的,它是零規格,所以不用擔心 – bestsss