serialVersionUIDtransient
生活随笔
收集整理的這篇文章主要介紹了
serialVersionUIDtransient
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
-
serialVersionUID
-
用對象序列化流序列化了一個對象后,假如我們修改了對象所屬的類文件,讀取數據會不會出問題呢?
-
會出問題,會拋出InvalidClassException異常
-
-
如果出問題了,如何解決呢?
-
重新序列化
-
給對象所屬的類加一個serialVersionUID
-
private static final long serialVersionUID = 42L;
-
-
-
-
transient
-
如果一個對象中的某個成員變量的值不想被序列化,又該如何實現呢?
-
給該成員變量加transient關鍵字修飾,該關鍵字標記的成員變量不參與序列化過程
-
-
-
示例代碼
-
學生類
-
測試類
public class ObjectStreamDemo {public static void main(String[] args) throws IOException, ClassNotFoundException { // write();read();}//反序列化private static void read() throws IOException, ClassNotFoundException {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("myOtherStream\\oos.txt"));Object obj = ois.readObject();Student s = (Student) obj;System.out.println(s.getName() + "," + s.getAge());ois.close();}//序列化private static void write() throws IOException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("myOtherStream\\oos.txt"));Student s = new Student("林青霞", 30);oos.writeObject(s);oos.close();} }?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的serialVersionUIDtransient的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对象反序列化流
- 下一篇: Properties作为Map集合的使用