我想知道爲什麼當我使用一個匿名實例和一個實例初始化塊時,我得到一個「可序列化的類沒有聲明long類型的靜態最終serialVersionUID字段」編譯時警告。匿名初始化 - 奇怪的序列化警告
這是我的意思。比方說,我想實例化一個ArrayList和同時添加的東西給它,像這樣:
ArrayList<Object> arrayList = new ArrayList<Object>(){{add(new Object());}};
如果我編譯這一切都是確定,但我得到的serialVersionUID領域缺少警告。現在ArrayList已經實現了可序列化,並且有一個private static final long serialVersionUID
那麼爲什麼當我像這樣使用它時,它看起來該字段「消失」了,並且我得到了一個沒有聲明的警告?
這只是愚蠢的。很少有人今天使用Java序列化,這種通用警告是沒有根據的。而且我永遠無法將引用IDE的Eclipse用戶視爲**非限定編譯器。 – irreputable
相關:[顯式serialVersionUID認爲有害?](http://stackoverflow.com/questions/419796/explicit-serialversionuid-considered-harmful) –
@irreputable是否有一些註釋來壓制這一點?我的意思是,如果他們可以爲未經檢查的演職人員做到這一點,那麼您肯定會期望像UID這樣的東西可以被忽略。 –