gpt4 book ai didi

java - 标记接口(interface)的内部实现是什么?

转载 作者:行者123 更新时间:2023-11-29 03:09:50 25 4
gpt4 key购买 nike

我对“标记接口(interface)”有所了解,标记接口(interface)没有任何成员。例如:SerialiazableCloneable

我在谷歌搜索中发现标记接口(interface)是用于向 JVM 发送一些指令的? 我想知道那些指令是什么 以及我如何理解?请帮我举一个真实世界的例子。

最佳答案

标记接口(interface)是一种标记类是或正在做某些事情的方法,即使这些事情也没有表示为实际的方法。例如 SerialiazableCloneable 等。由于引入了注释,因此它们几乎总是首选,尽管它们不能完全取代标记接口(interface),正如 Joshua Bloch 所建议的那样

... You may hear it said that marker annotations (Item 35) make marker interfaces obsolete. This assertion is incorrect. Marker interfaces have two advantages over marker annotations. First and foremost, marker interfaces define a type that is implemented by instances of the marked class; marker annotations do not. The existence of this type allows you to catch errors at compile time that you couldn’t catch until runtime if you used a marker annotation....

Serializable 的情况下,类实现此接口(interface)以指示其非 transient 数据成员可以写入 ObjectOutputStream。此外,序列化对象需要保持跨系统的兼容性,这是一个明确的设计决策,因此需要使用标记接口(interface)来识别此类候选者。

类似地实现 Cloneable 会告诉 JVM 这个类实现了 Cloneable,因此 JVM 必须按位复制它。

关于java - 标记接口(interface)的内部实现是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29999305/

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