1. 程式人生 > >Java學習筆記之transient關鍵字

Java學習筆記之transient關鍵字

看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