我很困惑。我在JAVA中读取了关于标记接口的堆栈溢出的一些线程。
On this thread it is written as:
标记接口根本没有“由JVM识别”。它们由对它们感兴趣的Java代码标识,例如ObjectOutputStream,通过instanceof运算符。
然后在评论中,断言: ObjectOutputStream中的实现检查对象是否已实现Serializable接口,如果是,则执行wirteObject(objectToBeSerialized)。因此,即使我们可以编写标记接口并编写代码来检查对象是否是该标记接口的实例,然后对其执行适当的操作。
On another thread it is written as:
只有Serializable会将对象标记为与Java的内置序列化机制兼容。 您可以创建其他空接口,但它们并不意味着相同的东西。每个接口都是不同的,即使它定义了同一组方法。
所以我的问题是我们可以创建使用序列化的类而不实现相应的JAVA内置接口吗? 或者它是一个强制实施的特殊界面? (Asumme,我不想使用实例)