我想知道为什么当我使用一个匿名实例和一个实例初始化块时,我得到一个“可序列化的类没有声明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这样的东西可以被忽略。 –