当前位置: 首页 > 面试题库 >

标记接口

倪灿
2023-03-14
问题内容

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

例如:如果Clonable标记界面没有字段/方法,那么clone()定义在哪里?

为什么Clonable每次clone()使用时都应实施i / f ?

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

有人可以详细说明一下Java的这种约定吗?

提前致谢


问题答案:

clone()java.lang.Object所有类的扩展类中定义,但它是protected。这实际上是一个具体的方法实现,它对对象进行逐字段克隆,但前提是您已实现Cloneable接口以表明允许这样做。

实际上,许多人都重写了该clone()方法,以便他们可以使用它public并允许从类外部进行克隆。

整个模式是非常不寻常的,不是您通常会复制的模式,我想不出JVM中有许多成对的标记接口和方法的其他示例。从 Java 5
开始,最好对标记使用注释。例如,@XmlRootElement用于将类型标记为Jax-B可序列化(Java
5之后)与Serializable用于指示类是二进制可序列化的接口(Java 5之前)的接口。



 类似资料:
  • 问题内容: 有人可以解释一下Java中标记接口的约定吗? 例如:如果标记界面没有字段/方法,那么定义在哪里? 为什么每次使用时都应实施i / f ? 好吧,我的问题是,如果是类方法,为什么要实现i / f来覆盖。 有人可以详细说明一下Java的这种约定吗? 提前致谢 问题答案: 在所有类的扩展类中定义,但它是。这实际上是一个具体的方法实现,它对对象进行逐字段克隆,但前提是您已实现接口以表明允许这样

  • 问题内容: 在阅读有关标记接口的信息时,我偶然发现了以下站点:项目37:使用标记接口定义类型 在这里,根据Joshua Bloch的说法,标记接口比标记注释有两个优点。 1. 标记接口定义了一种由标记的类的实例实现的类型。标记注释没有。这种类型的存在使您可以在编译时捕获错误,而如果使用标记注释,则这些错误在运行时才捕获。 2. 标记接口相对于标记注释的另一个优点是可以更精确地定位它们。如果使用ta

  • 在阅读有关标记接口的内容时,我偶然发现了以下网站:第37项:使用标记接口定义类型 根据Joshua Bloch的说法,标记接口比标记注释有两个优点。 > 标记接口定义由标记类的实例实现的类型;标记注释没有。这种类型的存在允许您在编译时捕获错误,如果您使用标记注释,则直到运行时才能捕获这些错误。 与标记注释相比,标记接口的另一个优点是可以更精确地定位它们。如果使用target,它可以应用于任何类或接

  • 问题内容: 标记接口是什么?它们的作用是什么? 问题答案: 因为有时候,想到类型的某些属性可以用作类型本身确实很有意义。如果我做这样的方法: …您真的不知道该如何保存。VM序列化?Bean属性序列化?一些自制的方案?而如果您这样写: …非常清楚(如果只有的设计师使用过这种可能性!)。有时,当您想向类型添加元数据时,可以使用注释,但是在这种情况下,我建议使用标记接口。

  • 我被告知Java中的标记接口是一个空接口,用于向编译器或JVM发出信号,表明实现此接口的类的对象必须以特殊方式处理,如序列化、克隆等。 但是最近我了解到,它实际上与编译器或JVM无关。例如,在< code>Serializable接口的情况下,< code>ObjectOutputStream的方法< code>writeObject(Object)执行类似于< code > instance o

  • 我正在使用Logback登录我的应用程序。我使用的是HTMLLayout,我的msg已经格式化,但当logbak打印该msg时,它不会显示格式化的msg 我的logback代码是: 消息示例: HTTP请求:User:unknown-Path:resorts-Header:{host=[localhost:8022],connection=[keep alive],content-length=[