Shi*_*gon 5 java initialization anonymous-types
我想知道为什么当我使用匿名instanciation和实例初始化程序块时,我得到一个"可序列化的类不会声明类型为long的静态最终serialVersionUID字段"编译时警告.
这就是我的意思.假设我想实例化一个ArrayList,同时向它添加一些内容,如下所示:
ArrayList<Object> arrayList = new ArrayList<Object>(){{add(new Object());}};
Run Code Online (Sandbox Code Playgroud)
如果我编译这一切都没问题,但我得到serialVersionUID字段缺少警告.现在ArrayList已经实现了serializable并且有一个private static final long serialVersionUID如此,为什么当我使用它时,似乎该字段"消失"并且我收到警告没有声明它?
创建匿名类时,实际上是在扩展ArrayList,因此继承了该Serializable接口.
所有Serializable类都应该有一个,serialVersionUID以便您可以区分类的不同序列化版本.由于匿名类型是一个新类,因此给它一个ID是个好主意,这样你就可以区分它的不同版本.
| 归档时间: |
|
| 查看次数: |
826 次 |
| 最近记录: |