使用序列化实现对象的拷贝
2017-04-11 10:53
176 查看
一、准备需要拷贝的Bean对象
package com.lsf.object; import java.io.Serializable; public class ObjectCloneBean implements Serializable { private static final long serialVersionUID = -8302871064487814045L; private String userName; private String password; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
二、用序列化拷贝对象
@SuppressWarnings("unchecked") public static <T extends Serializable> T clone(T object) { T cloneObject = null; try { // 把母对象写入字节流 ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream objOut = new ObjectOutputStream(out); objOut.writeObject(object); objOut.close(); // 分配内存,写入原始对象,生成新的对象 ByteArrayInputStream inputStream = new ByteArrayInputStream(out.toByteArray()); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); //生成新对象,并转型 cloneObject = (T) objectInputStream.readObject(); objectInputStream.close(); } catch (Exception e) { e.printStackTrace(); } return cloneObject; }
三、测试
public class ObjectCloneTest { public static void main(String[] args) { ObjectCloneBean objectCloneBean = new ObjectCloneBean(); ObjectCloneBean newObject = clone(objectCloneBean); newObject.setUserName("jack"); System.out.println(newObject.getUserName()); } }
print:jack
THE END
相关文章推荐
- java提高篇(五)-----使用序列化实现对象的拷贝
- Java提高篇(五):使用序列化实现对象的拷贝
- java提高篇(五)-----使用序列化实现对象的拷贝
- java提高篇(六)_使用序列化实现对象的拷贝 转自 http://cmsblogs.com
- java提高篇(五)-----使用序列化实现对象的拷贝
- 避免对象的浅拷贝,推荐使用序列化实现对象的拷贝
- java提高篇-----使用序列化实现对象的拷贝 (深拷贝)
- [编写高质量代码:改善java程序的151个建议]建议43 避免对象浅拷贝; 建议44:推荐使用序列化实现对象的深拷贝
- java提高篇(六)-----使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝
- java提高篇(六)-----使用序列化实现对象的拷贝
- java提高篇-----使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝的具体实现过程
- java提高篇(五)-----使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝
- [改善Java代码] 推荐使用序列化实现对象的拷贝
- java提高篇(五)-----使用序列化实现对象的拷贝
- java提高篇(六)-----使用序列化实现对象的拷贝
- 使用序列化实现对象的拷贝(转载)
- 7、使用序列化实现对象的拷贝