【问题标题】:Custom Marker Interface in JavaJava中的自定义标记接口
【发布时间】:2019-07-13 10:40:29
【问题描述】:

由于 Serializable 和 Cloneable 是标记接口(没有任何方法的接口),所以如果我们创建自己的标记接口,那么这两者之间会有什么区别。

【问题讨论】:

  • 我的回答是否可以接受,或者您需要其他说明吗?

标签: java serialization polymorphism cloneable marker-interfaces


【解决方案1】:

SerializableCloneable 是标准接口。它们都属于“受保护”的包(这意味着你不能向它们添加类——你可以,但这不是你每天都做的事情)。

java.io.Serializable
java.lang.Cloneable

它们在运行时被 JVM 识别。
例如,在没有实现 Cloneable 的对象上调用 clone() 会抛出一个

java.lang.CloneNotSupportedException

您可能希望将标记接口用于自定义运行时检查,甚至用于编译时处理。但是推荐的方法是使用注解

【讨论】:

  • 你写的是对的,但是如果我们创建我们的自定义标记界面。它们还将在运行时被 JVM 识别,即使我们绑定了程序,如果它包含我们的自定义标记接口的实例,则执行此工作。那么两者会有什么区别......
  • @SumitSingh mmh 我想我错过了你的观点。你能写一个你想做的例子吗?
猜你喜欢
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
  • 2022-07-14
  • 2021-12-15
  • 2012-02-21
  • 2012-05-20
  • 2020-10-31
  • 1970-01-01
相关资源
最近更新 更多