gpt4 book ai didi

java - ArrayList<>() 和 ArrayList<>(){} 之间的区别

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:55 26 4
gpt4 key购买 nike

这两者有什么区别。为什么后者要创建一个新的可序列化类?

new ArrayList<Clazz>() 

创建一个新的空ArrayList

new ArrayList<Clazz>(){}

Eclipse 显示:可序列化类未声明 long 类型的静态最终 serialVersionUID 字段

最佳答案

在第一个示例中,您正在创建一个 ArrayList 实例。在后者中,您正在创建 ArrayList 的匿名子类的实例。通常你会覆盖子类中的一个或多个方法, 否则创建这样的方法没有多大意义。 正如 John Skeet 指出的那样,创建泛型的匿名子类有一个奇怪的原因,请参阅his answer .

Eclipse 警告说,为了遵守 Serializable 规范(ArrayListSerializable,所以它的所有子类也是),您应该在子类中定义一个唯一的 serialVersionUID ,反序列化过程可以从该子类中确保类定义自序列化以来没有发生显着变化(显着==您自己已经决定新定义与旧的,因此您可以通过更改 serialVersionUID 来表达事实)。如果您永远不会序列化列表,则警告无关紧要。

关于java - ArrayList<>() 和 ArrayList<>(){} 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7790039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com