实现Serializable接口的Java类

4

我需要一个实现Serializable接口的类列表。你能告诉我有哪些类实现了这个接口吗?


3
你能解释一下为什么你需要这个清单吗? - Adam Paynter
3
我的“麻烦指数表”上的指针刚刚断掉了。 - erickson
哈哈。也许他/她只是好奇。 - jjnguy
5个回答

11
在Java API中,大多数类都实现了Serializable(这里是完整列表)。需要进行序列化的类实现Serializable。您可以使用IDE在项目中查找所有接口的实现者。

2
如果您使用Eclipse,则在任何地方看到“Serializable”(例如下面的类定义):
import java.io.Serializable;

public Foo implements Serializable {

}
  • 点击 Serializable ,使文本标记在此单词上。
  • 按下 Control + T 键。

这可能需要一些时间,因为这是一个非常普遍的接口,但它将显示在您的类路径中找到的所有实现 Serializable 的类。


您还可以使用菜单:导航>快速类型层次结构。 - Cuga
你为什么要投反对票呢?这个代码可以列出所有实现了Serializable接口的类,这个列表比上面提到的更加全面。 - Cuga
我猜你被踩的原因是你建议创建一个类只是为了能够选择Serializable接口。我建议通过按下Ctrl + Shift + T并在过滤框中输入Serializable来访问接口。之后,你可以按上述Ctrl + T以在浮动小部件中获取类层次结构,或按F4以在单独视图中获取它。 - Zsolt Török
我明白你的意思。我并不是想暗示这是打开类型层次结构的唯一方法 - 我希望它易于理解和清晰地展示如何完成。 - Cuga
最初的问题是“实现Serializable接口的类列表”。什么列表?JDK中的可序列化对象?您刚继承的一大堆代码中的可序列化对象?两种解释都是合理的,学习如何在这两种情况下查找信息都是有帮助的。 - Jim Ferrans

2

您可以在此处查看所有实现类的完整列表

如果您需要编程检查,可以使用instanceof运算符来检查对象是否是Serializable接口的实例。

子接口列表并不是实际实现该接口的所有类的列表。


0

有效地实现Serializable会使类和子类成为公共API的一部分。您可以通过单击Javadoc输出中的Serial Form链接来查看至少一些可序列化的类。其中一些类并不是公共/受保护的(在API文档中,它们不会有指向类文档的链接)。可序列化的匿名内部类似乎不会出现,尽管有一些this$0字段。


0

快速的答案是:任何你想要储存以备后用的类。

这包括数据包装器(Integer、String、Character等)、数据类和集合等。

然而,只有集合中的项是可序列化的时,集合才是可序列化的。

此外,还有第二个接口Externalizable,它被用于那些将其数据写入某种外部接口的类,只有对该项的引用存储在序列化流中。


序列化不适用于长期存储,仅适用于通信等短期用途。实现Externalizable接口的类将其外部化状态存储在序列化流中。Serializable和Externalizable类之间的区别在于,序列化器负责Serializable类的流格式,而Externalizable类实现自己的格式。 - Nat
抱歉有错别字:我是在 iPhone 上写的。 - Nat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接