Java –什么是瞬态字段?
生活随笔
收集整理的這篇文章主要介紹了
Java –什么是瞬态字段?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在Java中, transient字段在序列化過程中被排除。 簡而言之,當(dāng)我們將對象保存到文件中(序列化)時,所有transient字段都將被忽略。
1. POJO +瞬態(tài)
復(fù)查以下Person類; 薪水領(lǐng)域是transient 。
public class Person implements Serializable {private static final long serialVersionUID = 1L;private String name;private int age;// ignore this fieldprivate transient BigDecimal salary;//... }2.序列化
2.1在序列化期間,瞬態(tài)現(xiàn)場salary將不包括在內(nèi)。
ObjectUtils.java
package com.mkyong.io.object;import java.io.*; import java.math.BigDecimal;public class ObjectUtils {public static void main(String[] args) throws IOException, ClassNotFoundException {Person person = new Person("mkyong", 40, new BigDecimal(900));// object -> filetry (FileOutputStream fos = new FileOutputStream("person.obj");ObjectOutputStream oos = new ObjectOutputStream(fos)) {oos.writeObject(person);oos.flush();}Person result = null;// file -> objecttry (FileInputStream fis = new FileInputStream("person.obj");ObjectInputStream ois = new ObjectInputStream(fis)) {result = (Person) ois.readObject();}System.out.println(result);}}2.2現(xiàn)在,我們刪除了transient關(guān)鍵字。
Person.java
public class Person implements Serializable {private static final long serialVersionUID = 1L;private String name;private int age;private BigDecimal salary;//... }重新運行它,這次將顯示薪水字段。
Terminal
Person{name='mkyong', age=40, salary=900}總結(jié)
以上是生活随笔為你收集整理的Java –什么是瞬态字段?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Iterator主要有三个方法:hasN
- 下一篇: 数字信号处理学习笔记(二)|快速傅里叶变