java.io.NotSerializableException異常的問題及解決
java.io.NotSerializableException異常
先說解決方法再說原因
解決方法
報錯信息會指示出問題的是哪個實體類,在該實體類的后面加上一句 “implements Serializable”
例如:
import java.io.Serializable;
public class User implements Serializable{
}如果加了“implements Serializable”之后還是報錯,你會發(fā)現報錯信息里面指向的是你要序列化的類里面引用的其他實體類,所以實體類里面所有的實體類都需要加上 “implements Serializable” 。
原因
出現這個問題的時候應該是想要將 該實體類對象保存到某個地方,那么此時必須需要序列化;一個類只有實現了Serializable接口,它的對象才是可序列化的;
而訪問這個類的源代碼你會發(fā)現他什么也沒有實現,其實就相當于一個標志位,它的作用只是能指明哪個類可以被實例化
(java對象不可序列化異常)java.io.NotSerializableException
java.io.NotSerializableException
要想一個對象時可序列化的,需要滿足相應的要求:
(1)該對象必須實現Serializable接口
(2)需要提供一個全局常量serialVersionUID,其值任意
(3)保證其內部的所有屬性也必須是可序列化的(默認情況下基本數據類型和String類型是可序列化的)
例如,想使Person進行序列化操作:

*對象序列化機制允許把內存中的Java對象轉換成平臺無關的二進制流,從而允許把這種二進制流持久地保存在磁盤上,或通過網絡將這種二進制流傳輸到另一個網絡節(jié)點。//當其它程序獲取了這種二進制流,就可以恢復成原來的Java對象
*序列化:用ObjectOutputStream類保存基本類型數據或對象的機制
*反序列化:用ObjectInputStream類讀取基本類型數據或對象的機制
*ObjectOutputStream和ObjectInputStream不能序列化static和transient修飾的成員變量
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解Java字節(jié)碼編程之非常好用的javassist
這篇文章主要介紹了詳解Java字節(jié)碼編程之非常好用的javassist,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
Springboot教程之如何設置springboot熱重啟
這篇文章主要介紹了Springboot教程之如何設置springboot熱重啟,本文通過實例圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
SpringBoot使用Redisson實現延遲執(zhí)行的完整示例
這篇文章主要介紹了SpringBoot使用Redisson實現延遲執(zhí)行的完整示例,文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-06-06
最優(yōu)雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企業(yè)級應用(附源碼)
這篇文章主要介紹了最優(yōu)雅地整合 Spring & Spring MVC & MyBatis 搭建 Java 企業(yè)級應用(附源碼),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01

