Java 中的 Marker Interfaces?
2022-08-31 07:54:54
我被教导说,Java中的Marker接口是一个空接口,用于向编译器或JVM发出信号,表明实现此接口的类的对象必须以特殊方式处理,如序列化,克隆等。
但最近我了解到它实际上与编译器或JVM无关。例如,在接口的情况下,的方法会做一些事情来检测类是否相应地实现和抛出。一切都在代码中处理,这似乎是一个设计模式,所以我认为我们可以定义自己的标记接口。Serializable
writeObject(Object)
ObjectOutputStream
instanceOf Serializable
Serializable
NotSerializableException
现在我的怀疑:
上面第一点中提到的标记接口的定义是否错误?那么,我们如何定义一个标记接口呢?
而不是使用运算符,为什么方法不能像编译时类型检查而不是运行时那样?
instanceOf
writeObject(Serializable)
注释如何比标记接口更好?