有人可以解释一下Java中标记接口的约定吗?
例如:如果Clonable
标记界面没有字段/方法,那么clone()
定义在哪里?
为什么Clonable
每次clone()
使用时都应实施i / f ?
好吧,我的问题是,如果clone()
是java.lang.Object
类方法,为什么要实现Clonable
i / 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=[