【发布时间】:2019-07-13 10:40:29
【问题描述】:
由于 Serializable 和 Cloneable 是标记接口(没有任何方法的接口),所以如果我们创建自己的标记接口,那么这两者之间会有什么区别。
【问题讨论】:
-
我的回答是否可以接受,或者您需要其他说明吗?
标签: java serialization polymorphism cloneable marker-interfaces
由于 Serializable 和 Cloneable 是标记接口(没有任何方法的接口),所以如果我们创建自己的标记接口,那么这两者之间会有什么区别。
【问题讨论】:
标签: java serialization polymorphism cloneable marker-interfaces
Serializable 和 Cloneable 是标准接口。它们都属于“受保护”的包(这意味着你不能向它们添加类——你可以,但这不是你每天都做的事情)。
java.io.Serializable
java.lang.Cloneable
它们在运行时被 JVM 识别。
例如,在没有实现 Cloneable 的对象上调用 clone() 会抛出一个
java.lang.CloneNotSupportedException
您可能希望将标记接口用于自定义运行时检查,甚至用于编译时处理。但是推荐的方法是使用注解。
【讨论】: