相关疑难解决方法(0)

Java中的标记接口?

我被告知Java中的Marker接口是一个空接口,用于向编译器或JVM发出信号,表明必须以特殊方式处理实现此接口的类的对象,如序列化,克隆等.

但最近我了解到它实际上与编译器或JVM无关.例如,在的情况下,Serializable接口的方法writeObject(Object)ObjectOutputStream不喜欢的东西instanceOf Serializable,以检测类实现是否Serializable与抛出NotSerializableException相应.一切都在代码中处理,这似乎是一个设计模式,所以我认为我们可以定义自己的标记接口.

现在我怀疑了:

  1. 上面提到的标记接口的定义在第一点是错误的吗?那么我们如何定义Marker接口呢?

  2. 而不是使用instanceOf运算符为什么不能使方法类似于writeObject(Serializable)有一个编译时类型检查而不是运行时?

  3. 注释如何比标记接口更好?

java design-patterns marker-interfaces

129
推荐指数
5
解决办法
9万
查看次数

标记接口

有人可以解释一下java中标记接口的契约吗?

对于Ex:如果Clonable是没有字段/方法的标记接口,那么clone()定义在哪里?

我们为什么要Clonableclone()使用时实现i/f ?

好吧,我的问题是,如果clone()是一个java.lang.Object类的方法,为什么要实现Clonablei/f来覆盖clone().

有人可以详细说明这个java的惯例吗?

提前致谢

java marker-interfaces

6
推荐指数
1
解决办法
4713
查看次数

标签 统计

java ×2

marker-interfaces ×2

design-patterns ×1