关闭

JAVA复制对象给另一个对象

标签: javahibernateobject
24336人阅读 评论(0) 收藏 举报
分类:

今天算是遇到一个问题了。相当苦恼。

需求如下:有2个相同id的对象,但它们的值不同。其中一个对象要用到另一个对象的属性值。

由于在hibernate的sessionFactory().getSession中不能存在2个相同id的对象。故此,想出复制对象。

找了很多地方,发现有2种方法可以达到复制对象的目的,只是最后这种方法还是没有解决我的问题。仅此记下来吧。

1,克隆clone

java支持克隆一个对象的值到另一个对象,简单的克隆和深度克隆,深度克隆可能包括继承,嵌套,没有用到,所以也就没怎么去研究它。

首先,克隆的对象需要实现 Cloneable接口,重写其中的clone()方法,为了使clone()方法在外部可用,需要将重写的方法访问修饰符改成public级别。

@Override
	public Object clone() throws CloneNotSupportedException {
		return super.clone();
	}

dv=(Deliverymanreport)deliverymanreport.clone();//克隆对象

dv是deliverymanreport克隆的一个对象。它拥用克隆后的属性和方法。


2,序列化和反序列化Serializable

序列化的对象要实现Serializable接口才能实现序列化。

序列化后,通过反序列化可以得到和当前对象一样的对象。它比克隆来得更准备。但也就不一定最好,如果这个对象在之前被修改,序列化后可能就会出问题了。

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ObjectOutputStream out= new ObjectOutputStream(byteOut);
out.writeObject(deliverymanreport);//写对象,序列化
ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); 
 dv=(Deliverymanreport)in.readObject(); //读对象,反序列化

序列化经常用于文件传递的读取。尤其是在缓存中用得比较多,通过序列化可以将对象缓存在硬盘中。这在登录系统缓存用户权限和角色等信息最常见。而用对克隆对象,也不失为一种很好的方法。


2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

JAVA 对象拷贝

1.java里的clone分为:  A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。  b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。  Jav...
  • jdluojing
  • jdluojing
  • 2011-11-12 17:18
  • 65835

Java如何复制对象

假如说你想复制一个简单变量。很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,b...
  • czjuttsw
  • czjuttsw
  • 2013-01-10 21:29
  • 41025

java复制对象

关于java对象复制 我们在编码过程经常会碰到将一个对象传递给另一个对象,java中对于基本型变量 采用的是值传递,而对于对象比如bean传递时采用的是应用传递也就是地址传递, 而很多时候对于对...
  • wutongyu344
  • wutongyu344
  • 2012-03-14 17:31
  • 33832

Java深度拷贝一个对象

深度拷贝一个Java对象,无论这个对象里面有什么样的参数,比如String、数组、Object类型,或者Object类型里面又有Object类型的参数。 而且这个被拷贝的对象无须实现Serializa...
  • ghuiL
  • ghuiL
  • 2015-10-26 13:36
  • 1690

使用反射将一个对象的值复制给另一个对象(同一个对象或者基于同一个基类)

我写了两个方法: 第一个方法是一个类的不同实例化对象,比如类A,实例化对象a1,a2,:(使用的方法是得到类的属性名) /** * * *@descript...
  • bq1073100909
  • bq1073100909
  • 2015-09-13 11:28
  • 2841

JAVA复制对象给另一个对象

JAVA复制对象给另一个对象  标签: javahibernateobject 2012-03-23 16:46 14881人阅读 评论(0) 收藏 举报  分类:   ...
  • gaoqiao1988
  • gaoqiao1988
  • 2016-06-25 22:40
  • 527

java对象拷贝

java赋值是复制对象引用,如果我们想要得到一个对象的副本,使用赋值操作是无法达到目的的:@Test public void testassign(){ Person p1=new Person(...
  • 54powerman
  • 54powerman
  • 2017-03-22 15:49
  • 880

Java对象的复制克隆

  • 2011-12-22 11:10
  • 20KB
  • 下载

java克隆对象clone()的用法和作用

内容摘要若需修改一个对象,同时不想改变调用者的对象,就要制作该对象的一个本地副本。这也是本地副本最常见的一种用途。若决定制作一个本地副本,只需简单地使用clone()方法即可。Clone是“克隆”的意...
  • u012975705
  • u012975705
  • 2015-12-09 10:02
  • 11408

java中对象的克隆

克隆是完全复制另一个物体,在java中,意味着创建一个和原对象有相似状态的对象。clone()方法就提供了这个功能,在这篇文章中,我们将探索java 克隆的一些最重要的方面。这篇文章是mini gui...
  • maoyeqiu
  • maoyeqiu
  • 2015-11-25 15:24
  • 2657
    About Me
    扫描关注最代码微信公众号。

    自由、简单、快乐
    学习网站:java源代码学习
    个人资料
    • 访问:4360170次
    • 积分:38956
    • 等级:
    • 排名:第118名
    • 原创:665篇
    • 转载:89篇
    • 译文:1篇
    • 评论:1290条
    友情链接
    博客专栏
    最新评论