【发布时间】:2011-08-21 09:16:39
【问题描述】:
可能的重复:
marker interface
What is the purpose of a marker interface?
我知道什么是标记接口——没有方法的接口。 示例:可序列化、远程、可克隆。
我想知道标记接口的目的是什么。这是我的理解:-
基本上只是从普通对象中识别特殊对象。与序列化一样,需要序列化的对象必须实现可序列化接口,并且下线 writeObject() 方法必须在某处检查它是否是可序列化的实例。据我所知,这是 writeObject 使用接口可序列化(标记接口)的唯一目的。正确的?还是jvm在可序列化接口的基础上也提供了一些额外的功能?
类似的逻辑适用于可克隆接口。
现在让我们看看它有什么用处。
假设在应用程序中我们有 1000 个值对象。我们只想序列化 100 个特定对象。现在JDK已经说过程序员的角色只是用标记接口将对象标记为特殊,在这种情况下它的可序列化接口。现在JDK将处理哪个对象序列化或不序列化?
是的,我们可以通过某种 bolean flag 来实现这种行为。但那 将是一个糟糕的方法。
类似地,在用户定义的标记接口的情况下,我们可以借助标记接口来区分特殊对象。就像我们可以使用运算符的实例来确定它是否是该特定接口的实例。如果是,则在否的情况下继续抛出一些异常。
如果以上理解正确,请告知?
【问题讨论】:
-
有重复项。让我找到他们