Non-transient non-serializable instance field in serializable class sonar 檢測出的代碼規範
在使用sonar 檢測代碼質量的時候發現很多Non-transient non-serializable instance field in serializable class (序列化的類中存在非序列化的接口或非短暫性存儲的數據)報這個錯誤。仔細研究和查閱資料,參照網友 的方法
http://yangersoft.iteye.com/blog/1609854博客原文可以查看這
修正這個錯誤的方法主要有:
1、如果要可序列化某個類,需要實現Serializable接口
2、爲確保序列化與反序列化一致,UID必須不可改變
3、如果不需要序列化成員變量,那麼可以將這個變量標爲瞬時的,修飾符:transient
4、如果需要序列化成員變量的引用,那麼這個引用也需要實Serializable接口
//如果要可序列化某個類,需要實現Serializable接口
class Student implements Serializable
{
//爲確保序列化與反序列化一致,UID必須不可改變
private static final long serialVersionUID = 1L;
private String name;
private int age;
//如果不需要序列化成員變量,那麼可以將這個變量標爲瞬時的,修飾符:transient
//private transient Point point;
//如果需要序列化成員變量的引用,那麼這個引用也需要實Serializable接口
private Point point;
......
}