android java 实体类 object变量 保存_Java中的实体类--Serializable接口、transient 关键字...
在java中,實(shí)體類是一個(gè)非常重要的概念,我們可以在實(shí)體類中封裝對象、設(shè)置其屬性和方法等。關(guān)于實(shí)體類,也經(jīng)常涉及到適配器模式、裝飾者模式等設(shè)計(jì)模式。那么在實(shí)際代碼開發(fā)中,關(guān)于實(shí)體類的注意事項(xiàng)有哪些呢?
1. Serializable接口
實(shí)現(xiàn)該接口可以實(shí)現(xiàn)序列化,Serializable接口沒有方法或字段,僅用于標(biāo)識可序列化的語義。但是,如果一個(gè)類沒有實(shí)現(xiàn)這個(gè)接口,想要被序列化的話,就會拋出java.io.NotSerializableException異常。
2.?transient關(guān)鍵字
transient 關(guān)鍵字的作用是控制變量的序列化,在變量聲明前加上該關(guān)鍵字,可以阻止該變量被序列化到文件中,在被反序列化后,transient 變量的值被設(shè)為初始值,如 int 型的是 0,對象型的是 null。此外,針對密碼等敏感信息,也不應(yīng)該進(jìn)行序列化,因此需要在其前面加上?transient 關(guān)鍵字。
3.?serialVersionUID
關(guān)于serialVersionUID,在日常項(xiàng)目中,我們可能會忽略,但是其作用不可小視。在實(shí)體類中,如果我們不加上serialVersionUID,可能會發(fā)生意想不到的錯(cuò)誤。serialVersionUID其實(shí)是驗(yàn)證版本一致性的,在進(jìn)行序列化和反序列化后,通過serialVersionUID來驗(yàn)證是否是同一個(gè)對象。 可以在IDEA中設(shè)置實(shí)現(xiàn)Serializable接口后自動(dòng)生成。在實(shí)體類里面 實(shí)現(xiàn) java.io.Serializable 接口,然后選中實(shí)體類名稱 使用快捷鍵 Alt + Insert,選擇“Adjust code style setting”,會生成serialVersionUID。
自動(dòng)生成的serialVersionUID與UUID類似,幾乎不會重復(fù)。如? private static final long serialVersionUID = -8105780453909276536L;
總結(jié)
以上是生活随笔為你收集整理的android java 实体类 object变量 保存_Java中的实体类--Serializable接口、transient 关键字...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php mysql 查询缓存_mysql
- 下一篇: java带参方法上机一_Java带参方法