Object类型 有一个方法 clone() 修饰符为protect
他的子类不可以直接调用该方法进行对象的克隆
怎样才能调用该方法了 自能通过子类去实现该方法
Public Object clone()
{
Super.clone();
}
这样子类就可以通过调用自己的克隆方法克隆自己了
为什么要克隆,克隆有什么用
下面去定义对象
User user=new User();
User.setUserId(1);
User user1=user;
User.setUserId(2);
Syste.out.println(user.getUserId());
System.out.println(user1.getUserId());
结果输出为2 因为user1 与user指向同一片内存空间
如果这样了
User user=new User();
User.setUserId(1);
User user1=user.clone();
User.setUserId(2);
Syste.out.println(user.getUserId());
System.out.println(user1.getUserId());
结果输出为1和2 因为调用user.clone()会重新开辟一片空间给user1
那么user与user1的指向不同了 互不影响了
当然你不使用clone方法也可以
你可以定义一个utils类 将一个对象里面所有的属性全部赋值给新建的对象对应的属性 就相当于apache的BeanUtils这个类一样
BeanUtils.cloneBean(bean)
BeanUtils.copyProperties(dest, orig)