Java學習筆記之transient關鍵字
阿新 • • 發佈:2019-01-03
看LinkedList原始碼看到transient關鍵字,於是乎很好奇,從來沒見過哦
首先transient關鍵字的作用:當類使用Serializable序列化的時候,使用transient修飾的變數將只會放在記憶體裡,而不會寫在磁碟上,下面做一個測試:
被序列化的類:
public class TestTransientEntity implements Serializable {
private int id;
private String name;
private transient int age;
public int getId () {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
其中age是被transient修飾了,畢竟年齡不能隨便讓人知道嘛
TestTransientEntity entity = new TestTransientEntity();
entity.setId(1);
entity.setName("jack");
entity.setAge(18);
Intent intent = new Intent(this,TestTransientActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable ("entity",entity);
intent.putExtra("bundle",bundle);
startActivity(intent);
在第一個activity中初始化entity,並序列換之後傳給TestTransientActivity
Bundle bundle = getIntent().getBundleExtra("bundle");
TestTransientEntity entity = (TestTransientEntity) bundle.get("entity");
Log.w("列印","姓名 "+entity.getName()
+" ID "+entity.getId()
+" 年齡 "+entity.getAge());
列印結果:
W/列印: 姓名 jack ID 1 年齡 0