2014-01-06 99 views
4

在我的Eclipse,我試圖在系列化例子,我碰到下面的警告是一個靜態的最後的serialVersionUID領域的序列化類員工沒有聲明類型的長

enter image description here

我知道什麼serialVersionUID的是,什麼是它在序列化中有重要意義。我有關於此警告的以下問題

  1. IDE如何分配默認值。它是否在IDE中硬編碼?
  2. 當它說生成id什麼參數用於生成新的ID?
  3. 不確定第三個選項是什麼。說一些關於壓制註釋的東西。這是否意味着沒有id被分配。在那種情況下,序列化中使用了什麼?
+1

閱讀此項。 http://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use-it –

+0

建議:由於前兩個問題嚴格限定'Eclipse',所以將它作爲標籤添加。 –

+0

在我看來,就'serialVersionUID'本身而言,選項'2'和'3'基本上是相同的:在編譯時你不會得到警告,Java將在運行時爲你生成一個ID,時間。 –

回答

3

IDE如何分配默認值。它是否在IDE中硬編碼?

是默認硬編碼值,這是1L

當它說生成ID使用什麼參數,從而生成新的ID?

一般方法領域和方法簽名應該用來確定它,因爲你是關於Eclipse專門詢問,不清楚的話,有一個serialver utillity它只是給你的serialVersionUID爲類

$serialver A 
serialver A: static final long serialVersionUID = -609421954100196333L; 

不確定第三個選項是什麼。說一些關於壓制註釋的東西。這是否意味着沒有id被分配。在那種情況下,序列化中使用了什麼?

它說,指示Java編譯器不抱怨這種情況下,這個特殊的警示,加入@SuppressWarning註釋


請參見