VO/BO/DTO/META中我們通常會(huì)實(shí)現(xiàn)Serializable接口,會(huì)重寫toString方法。
- 實(shí)現(xiàn)Serializable接口通常是為了在網(wǎng)絡(luò)傳輸中可以序列化為二進(jìn)制字節(jié)流(前端調(diào)用接口時(shí)的數(shù)據(jù)傳輸;manager通過Dubbo調(diào)用service時(shí)的數(shù)據(jù)傳輸...)。如果不進(jìn)行序列化則會(huì)報(bào)出序列化失敗相關(guān)錯(cuò)誤。
只需要在相應(yīng)的類定義后面加上implement Serializable,JVM就知道此類可以被序列化,可被默認(rèn)的序列化機(jī)制序列化。編譯器就會(huì)自動(dòng)給我們類對(duì)象添加序列化和反序列化實(shí)現(xiàn)。
- 當(dāng)一個(gè)父類實(shí)現(xiàn)序列化,子類自動(dòng)實(shí)現(xiàn)序列化,不需要顯式實(shí)現(xiàn)Serializable接口。
- 一個(gè)子類實(shí)現(xiàn)了 Serializable 接口,它的父類都沒有實(shí)現(xiàn) Serializable 接口,要想將父類對(duì)象也序列化,就需要讓父類也實(shí)現(xiàn)Serializable 接口。
- 重寫toString方法為的是在打印該對(duì)象時(shí)可以清楚的得到該對(duì)象的詳細(xì)信息。不重寫時(shí)默認(rèn)調(diào)用父類Object的toString方法則只會(huì)打印該對(duì)象的hashcode(內(nèi)存地址)。