- 浏览: 109962 次
- 性别:
- 来自: 杭州
文章分类
最新评论
public interface Cloneable
此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。
按照惯例,实现此接口的类应该使用公共方法重写 Object.clone(它是受保护的)。请参阅 Object.clone(),以获得有关重写此方法的详细信息。
注意,此接口不包含 clone 方法。因此,因为某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。
上面的话来自Java Doc,从这段话可以得出2个结论:
必须实现Cloneable接口才有资格调用Object.clone()方法
实现Cloneable接口只是可克隆的条件之一,要可克隆,还必须改写 Object 的clone()方法,因为Object.clone()方法是protected的,必须进行覆盖并改为public。
其它注意事项:如果需要克隆的类引用到了其它的类的对象,甚至这个对象也引用到了别的对象,那么在必要情况下,你需要将这个对象树进行完整的克隆。
此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
如果在没有实现 Cloneable 接口的实例上调用 Object 的 clone 方法,则会导致抛出 CloneNotSupportedException 异常。
按照惯例,实现此接口的类应该使用公共方法重写 Object.clone(它是受保护的)。请参阅 Object.clone(),以获得有关重写此方法的详细信息。
注意,此接口不包含 clone 方法。因此,因为某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。
上面的话来自Java Doc,从这段话可以得出2个结论:
必须实现Cloneable接口才有资格调用Object.clone()方法
实现Cloneable接口只是可克隆的条件之一,要可克隆,还必须改写 Object 的clone()方法,因为Object.clone()方法是protected的,必须进行覆盖并改为public。
其它注意事项:如果需要克隆的类引用到了其它的类的对象,甚至这个对象也引用到了别的对象,那么在必要情况下,你需要将这个对象树进行完整的克隆。
发表评论
-
Java线程Dump分析工具--jstack(转摘纪录)
2015-10-29 10:47 853jstack用于打印出给 ... -
多角度看 Java 中的泛型
2014-05-13 15:40 733本文摘自:http://www.ibm.c ... -
java.lang.Object类 方法(转)
2014-05-13 10:55 2015Object类的方法 构造方法:public Obje ... -
为什么Java byte 类型的取值范围是-128~127(short int long同理)
2014-05-12 18:08 2095为什么Java byte 类型的取值范围是-128~127 ... -
web.xml之context-param,listener,filter, servlet启动顺序和讲解
2014-05-12 14:32 999首先可以确定的一点是, 不同类型节点的加载顺序与它们在web. ... -
java对象初始化书序
2014-05-09 15:05 592package com.test.aa.service; p ... -
java.lang.ThreadLocal详解以及注意事项
2014-04-29 18:12 2541一.什么是ThreadLocal? ThreadLocal ... -
String Stringbuilder StringBuffer区别
2014-04-17 11:00 709关于这三者的区别,我们从官方API上很容易找到答案。 ... -
JAVA反射机制
2014-04-03 15:15 340JAVA反射机制: 通俗地说,反射机制就是可以把一个类, ... -
ArrayList和linkedList几种循环性能比较
2014-03-26 17:51 627请 参照 http://www.trinea.cn/andr ... -
HashMap原理
2014-03-20 15:31 554本文由 ImportNew - 唐小娟 ... -
Java集合框架学习总结
2014-03-14 16:43 732以下介绍经常使用的集合类,这里不介绍集合类的使用方法,只介绍 ... -
maven项目管理的一些知识
2014-03-04 16:24 545http://sishuok.com/forum/blogPo ... -
ehcache使用注意 及一些问题的解决
2014-02-21 17:35 861配置 1. applicationContext.xml ... -
Xms Xmx PermSize MaxPermSize 区别
2014-02-20 16:13 640Eclipse崩溃,错误提示: ... -
JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配
2014-01-17 20:00 1131堆:顺序随意 栈:后进 ... -
debug遇到找不到源码的情况解决方案
2013-12-19 18:46 763在做JAVA开发的时候 页面端调用了接口服务端 找问题需要页面 ... -
工作学习2013-11-6
2013-11-06 20:20 5211.在用maven进行项目构建的时候 可以先建立以个maven ... -
运行jtest出现 No value found for property database.type 错误解决办法
2013-06-06 11:25 1773错误信息: Caused by: org.jtester.mo ...
相关推荐
Java编程语言的基础构建块之一是`java.lang`包,它被自动导入到每个Java程序中,无需显式导入。这个包包含了许多核心类和接口,是编写任何Java应用程序不可或缺的部分。`java.lang`包中最基本的类是`Object`,它是...
《深入解析java.lang》 Java语言的核心库之一就是`java.lang`包,它包含了Java程序设计中最基础的类和接口,这些类和接口是每个Java应用程序必不可少的。由于`java.lang`包在编译时自动导入,因此程序员无需显式...
《java_lang包详解》 Java语言的核心库之一就是java.lang包,它包含了Java程序中最基础、最核心的类和接口。由于这个包是自动导入到每个Java程序中的,所以理解和掌握其中的类和接口对于编写Java代码至关重要。下面...
java.util.HashMap,V> (implements java.lang.Cloneable, java.util.Map,V>, java.io.Serializable) java.util.LinkedHashMap,V> (implements java.util.Map,V>) org.springframework.core.annotation....
java.io.Serializable, java.lang.Cloneable, java.util.EventListener, nc.vo.gl.vouchervaluechange.ValueChangeListener, nc.vo.glpub.IVoAccess -----------------------------------------------------------...
2. `java.lang.Cloneable`: 标记接口,表示对象可以被克隆。 3. `java.lang.Runnable`: 实现此接口的类可以作为线程执行的任务。 4. `java.util.List`, `Set` 和 `Map`: 这些接口定义了集合框架的核心接口,提供数据...
【java-lang包详解】 在Java编程语言中,`java.lang`包是所有Java程序的基础,因为它包含了许多核心类和接口,这些类和接口是编写任何Java应用程序所必需的。由于这个包是自动导入的,因此程序员无需在代码中显式地...
在JDK中,`java.lang.Object#clone()`是一个典型示例,它支持浅克隆,要求实现`java.lang.Cloneable`接口。 ##### 单例模式 单例模式确保一个类只有一个实例,并提供一个全局访问点。JDK中的一些例子是: - `java...
Java源码阅读之java.lang.Object Java中的Object类是所有类的父类,任何类都默认继承Object。Object类提供了多种方法,以下是其中一些重要的方法: 1. clone方法:保护方法,实现对象的浅复制,只有实现了...
Java编程语言中的java.lang包是一个核心包,它提供了Java语言运行时的基础类库,包含了Java程序运行的基本数据类型、异常处理类以及一些用于系统级别的工具类和接口。java.lang包中的类和接口不需要程序员显示地导入...
14. **java.lang.CloneNotSupportedException**: 当对象没有实现`Cloneable`接口并且尝试调用`clone()`方法时,会抛出此异常。 15. **java.lang.EnumConstantNotPresentException**: 尝试访问的枚举常量在枚举类型...
在Java中,我们可以使用`java.lang.Cloneable`接口和`Object.clone()`方法来实现对象的浅复制,或者利用序列化和反序列化实现深复制。这种模式在需要频繁创建相似对象的场景下非常有效,节省了时间和内存。 2. **...
Java中的`java.lang.Cloneable`接口和`clone()`方法用于实现此模式。 6. **适配器模式**:使两个不兼容的接口能够协同工作。在Java中,可以通过继承或组合实现。 7. **装饰器模式**:动态地给一个对象添加一些额外...
在Java中,`java.lang.Cloneable`接口和`Object.clone()`方法可以实现此模式。 6. **装饰器模式**:动态地给一个对象添加一些额外的职责。在Java中,I/O流的处理就是装饰器模式的一个经典应用。 7. **适配器模式**...
Java中提供了`java.lang.Cloneable`接口来实现对象的浅复制和深复制。 6. **观察者模式(Observer)** 观察者模式定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动...
Java中可以利用`java.lang.Cloneable`接口和`clone()`方法实现。 6. **适配器模式(Adapter)**:使两个不兼容的接口能够协同工作。在Java中,可以使用类适配器或对象适配器模式,通过继承或组合实现。 7. **桥接...
要进行“克隆”的对象所属的类必须实现 java.lang.Cloneable 接口。 2. equals(Object obj) 方法:比较引用类型数据的等价性。等价标准:引用类型比较引用,基本类型比较值。存在特例:对 File、String、Date 及...