我試圖在Java中通過下面的類定義擴展LinkdList擴展LinkedList類:警告的Java中的
public class Roster extends LinkedList<Teammate>{
}
,但我這樣做收到以下警告:
The serializable class Roster does not declare a static final serialVersionUID field of type long
什麼這是否意味着如何刪除警告?
我試圖在Java中通過下面的類定義擴展LinkdList擴展LinkedList類:警告的Java中的
public class Roster extends LinkedList<Teammate>{
}
,但我這樣做收到以下警告:
The serializable class Roster does not declare a static final serialVersionUID field of type long
什麼這是否意味着如何刪除警告?
警告意味着你沒有做什麼你「同意」當您擴展,這樣做類。如果你擴展它,那個班會相信你的班級裏會有static final serialVersionUID field of type long
。這是因爲它是implements Serializable
這是一個需要這個變量的接口。
要剿警告加:
@SuppressWarnings("serial")
,你聲明類線以上(public class Foo
)
要解決該警告聲明的變量,如下所示:
private static final long serialVersionUID = 1812107715815332895L;
而且確保你使用的是隨機生成的。
Eclipse允許通過點擊行號旁邊的黃色燈泡將這兩個選項作爲快速修復。
serialVersionUID是用於 可序列化類的通用版本標識符。反序列化使用此編號確保加載的類完全對應於序列化的對象。如果找不到匹配 ,則拋出InvalidClassException。
爲了解決這個問題,聲明靜態唯一的ID在類 -
private static final long serialVersionUID = 75264722950069776147L;
//唯一的ID
閱讀java文檔 - http://docs.oracle.com/javase/1.5.0/docs/api/java/io/Serializable.html – adatapost
請閱讀http://stackoverflow.com/questions/285793/what -is-a-serialversionuid-and-why-should-i-use-it – Garbage