java 复制一个对象 不适用clone还有什么方法

就比如
A a=new A();
将a复制给b 但他们两个是不同的两个对象,a==b//false
有什么方法吗,不用clone

org.springframework.beans.BeanUtils用这个工具类
第一个object是源,就是a,第二个target就是你的b,前提是你的get,set名称一样,不让是没用的,想一下,方法名都不一样他也不可能一一对应上,对吧
BeanUtils.copyProperties(Object source, Object target) ;

A a = new B();
B b = new C();
//a拷贝b
a = b;
//b copy a
b = (B)a;
//a拷贝c
a = c;
c= (C)a;
b = c;
c = (C)b;

可以改写你的A对象,使其支持序列化,然后想复制的时候,先将A序列化到内存中的byte数组中去,再反序列化这个数组使其还原成一个新对象B,此时A和B也算是实现克隆了。

深克隆和浅克隆 你搜一下就知道了clone是浅克隆

是,但是有个前提,B类必须是A类的子类,否则
A a = new B(); 是有问题的
a = new B() 表示a 是B的实例
A a 表示a是A的实例
如果有2个类,Dw 动物,Dog 狗, 狗是Dw的子类
Dw o = new Dog();
那么o 对象,是一个狗,也属于动物(即是Dog的实例,也是Dw的实例)

可以使用深克隆,重写克隆方法,生成两个不同的对象

如果a对象和b对象属性名相同,可以使用这个方法:
org.springframework.beans.BeanUtils;

void BeanUtils.copyProperties(Object source, Object target) ;