• java 拷贝功能


    java 中的 拷贝分为浅拷贝 和 深拷贝

    浅拷贝需要实现Cloneable接口,深拷贝需要实现Serializable接口。

    public class Square implements Cloneable, Serializable
    {
        private Point location = new Point(0, 0);
    
        private float sideLength = 1F;
    
        @Override
        public Object clone()
        {
        Square tmp = null;
        try
        {
            tmp = (Square) super.clone();
        }
        catch (CloneNotSupportedException cnse)
        {
            cnse.printStackTrace();
        }
        finally
        {
            return tmp;
        }
        }
        
        /**
         * 深克隆方法
         * @return
         */
        public Object deepClone()
        throws IOException, OptionalDataException, ClassNotFoundException
        {
        // 首先将对象写到流里
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        ObjectOutputStream oo = new ObjectOutputStream(bo);
        oo.writeObject(this);
        
        // 然后将对象从流里读出来
        ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());
        ObjectInputStream oi = new ObjectInputStream(bi);
        
        return (oi.readObject());
        }
    
        /**
         * @return the location
         */
        public Point getLocation()
        {
            return location;
        }
    
        /**
         * @param location the location to set
         */
        public void setLocation(Point location)
        {
            this.location = location;
        }
    
        /**
         * @return the sideLength
         */
        public float getSideLength()
        {
            return sideLength;
        }
    
        /**
         * @param sideLength the sideLength to set
         */
        public void setSideLength(float sideLength)
        {
            this.sideLength = sideLength;
        }
    
    
    }
  • 相关阅读:
    审 讯 技巧
    带参数的多线程的方式
    通达信日线 数据格式
    visual studio 2012 update3
    单实例运行tz
    维特比算法
    Kooboo CMS的安装步骤
    年龄
    富文本编辑器---非常实用的
    printf 打印 unit32_t
  • 原文地址:https://www.cnblogs.com/ytfcz/p/3533198.html
Copyright © 2020-2023  润新知