java高效编程-clone 方法
2014-03-30 10:24
232 查看
clone 方法的背景
在设计中,有时候要对同一个类的多个对象进行操作,java的顶层设计中,考虑到通过clone的方法来创建新对象,当然,创建新对象是要通过已有的对象来创建 的,相当于copy出一份。clone方法实现的目标:
快速创建对象(比new要快,直接调用底层的native方法)
原对象与新对象相互独立。 修改新对象的任何属性不会改变到原来的对象。
继承Object的clone方法
Object 里面的clone方法,达到了第一条。但是对于第二条的保证,显得有点弱势,而且实现起来,比较复杂。一个类仅仅是继承Object,覆盖它的clone方法,是不能实现clone的。这个类还需要实现Clonnable接口。
Class CloneClass implements Cloneable{ public int aInt; public Object clone(){ CloneClass o = null; try{ o = (CloneClass)super.clone(); }catch(CloneNotSupportedException e){ e.printStackTrace(); } return o; } }
覆盖Clone方法时,必须要要通过super.clone()方法,获得新对象.
Clone方法的局限
1、 子类必须要通过继承父类的Clone方法,而且必须要通过super.clone来取得新对象。这就要保证父类也必须通过super.clone()来构造对象,到了顶层,实际上是Object的clone方法,实现创建对象。假设某一个的父类,实现clone方法不是按照这样的规定,就会容易出错。
2、 对于不好的Clone设计,就很难保证对象与对象的副本保持对象性。这样会导致非常怪异的问题。
Clone方法的代替方法
其实我们可以写一个方法,传一个对象作为参数,然后方法返回另外一个新的对象。这样创建对象的时间会慢一点,可以降低风险。
相关文章推荐
- java中的高效编程方法
- java高效编程一(静态工厂方法代替构造函数)
- Java高效编程之二【对所有对象都通用的方法】
- java中的高效编程方法
- Java高效编程之二【对所有对象都通用的方法】
- Java的编程方法
- 用eclipse集成opencv+java最高效的方法
- Java 复制文件的高效方法
- java clone方法
- Java我的高效编程之常用函数
- java中的clone()方法
- java中equals和==之间的区别?clone方法的作用,及其为什么要使用clone方法?如何使用clone复制对象?以及深克隆浅克隆
- java:万能的clone方法。(科长写的,赞!感谢科长和leader)
- JAVA中的protected(详解),以及和clone()方法有关的一些问题
- 详解Java中的clone方法
- 【Java基础之Object类(一)】Java中Object类中的所有方法(toString、equals、hashCode、clone、finalize、wait和notify等)详解(转载)
- 绝对使用JavaMyEclipse使用方法,不会让你失望....提高编程技巧和速度
- 详解Java中的clone方法:原型模式
- 一些基础的高效编程方法
- 快速高效学习Java编程在线资源Top 20