Java中标记接口有什么用?

新手上路,请多包涵

当像 Serializable 这样的标记接口中没有什么要实现的时候—实现它有什么用?

原文由 GuruKulki 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 365
2 个回答

在早期版本的 Java 中, 标记接口 是声明有关类的元数据的唯一方法。例如,可序列化标记接口让类的作者可以说他们的类在序列化和反序列化时会正确运行。

在现代 Java 中,标记接口没有立足之地。它们可以完全被 Annotations 取代,它允许非常灵活的元数据功能。如果您有关于某个类的信息,并且该信息永远不会改变,那么注释是一种非常有用的表示方式。

原文由 Chris Pitman 发布,翻译遵循 CC BY-SA 3.0 许可协议

Joshua Bloch:Effective Java 第 2 版,第 179 页

第 37 条:使用标记接口来定义类型

…您可能听说过标记注释(第 35 项)使标记接口过时了。这种说法是不正确的。与标记注释相比,标记接口有两个优点。首先,标记接口定义了一个由标记类的实例实现的类型;标记注释没有。这种类型的存在允许您在编译时捕获错误,如果您使用标记注释,则直到运行时才能捕获….

就我个人而言,我认为我会向约书亚在这个问题上的卓越知识鞠躬。

原文由 T C 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题