Java Object Clone

        User user = new User();
user.setName("tom");
User user1 = new User();
user1.setName("jerry");
List<User> list = new ArrayList<>();
list.add(user1);
user.setChildren(list);
user.setUser(user1);
System.out.println(user); User2 user2 = new User2();
BeanUtils.copyProperties(user2,user);
System.out.println(user2);
List<User2> children = user2.getChildren();
// 此处会出现错误
for (User2 user21 :children ) {
System.out.println(user21);
}
User user3 = (User) BeanUtils.cloneBean(user);
System.out.println(user3);

user:

package com.test;

import java.util.List;

public class User {
private String name;
private List<User> children;
private User user; public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} @Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", children=" + children +
", user=" + user +
'}';
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public List<User> getChildren() {
return children;
} public void setChildren(List<User> children) {
this.children = children;
}
}

user2:

package com.test;

import java.util.List;

public class User2 {
private String name;
private List<User2> children; private User2 user2; public User2 getUser2() {
return user2;
} public void setUser2(User2 user2) {
this.user2 = user2;
} @Override
public String toString() {
return "User2{" +
"name='" + name + '\'' +
", children=" + children +
", user2=" + user2 +
'}';
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public List<User2> getChildren() {
return children;
} public void setChildren(List<User2> children) {
this.children = children;
}
}

pom:

<!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.3</version>
</dependency>

注意和spring beanutils的区别:

https://blog.csdn.net/langqiao123/article/details/72961383/

传说spring Beanutils的性能要更好一些;

Java Object Clone的更多相关文章

  1. java Object对象的clone方法

    参考copy链接:http://blog.csdn.net/bigconvience/article/details/25025561 在看原型模式,发现要用到clone这个方法,以前和朋友聊过,没怎 ...

  2. 关于Java的Object.clone()方法与对象的深浅拷贝

    文章同步更新在个人博客:关于Java的Object.clone()方法与对象的深浅拷贝 引言 在某些场景中,我们需要获取到一个对象的拷贝用于某些处理.这时候就可以用到Java中的Object.clon ...

  3. 【java】对象克隆protected Object clone() throws CloneNotSupportedException

    package 对象克隆; class A implements Cloneable{//要具备clone()功能必须要实现Cloneable接口,此接口里无方法,只起标识作用. private St ...

  4. Java 基础 - Object.clone()深拷贝和浅拷贝

    作者:YSOcean 出处:http://www.cnblogs.com/ysocean/ 本文版权归作者所有,欢迎转载,但未经作者同意不能转载,否则保留追究法律责任的权利.   ---------- ...

  5. 关于Java深clone 的例子学习

    之前http://www.cnblogs.com/lhppom/p/4857702.html里有提到关于Java的深克隆的学习,深浅区别就是在于仅复制对象引用和复制对象引用所指向的对象,最近在看< ...

  6. java的 clone方法

    1.java语言中没有明确提供指针的概念与用法,而实质上每个new语句返回的都是一个指针的引用,只不过在大部分情况下开发人员不需要关心如果取操作这个指针而已. 2.在java中处理基本数据类型时,都是 ...

  7. Java基础——clone()方法浅析

    一.clone的概念 clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象.所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象.那 ...

  8. java Object类学习

    /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  9. java Object 类

    Object o=new Object(); 其中有两个受保护的方法:             1.protected void finalize()             2.protected ...

随机推荐

  1. 同步VDP时间

    使用yast 进入蓝屏界面,修改system—date and time,取消hardware clock set to utc,时区设置为上海或者北京,然后sntp -r 时间服务器地址 敲击syn ...

  2. 利用python实现新浪微博爬虫

    第一个模块,模拟登陆sina微博,创建weiboLogin.py文件,输入以下代码: #! /usr/bin/env python # -*- coding: utf-8 -*- import sys ...

  3. Centos 安装 WPS

    Linux有自己的一套类是Office的办公软件:LibreOffice,但是不是很友好,幸好WPS有Linux版本. 安装步骤: 1.安装依赖包 yum install libpng12 yum i ...

  4. android handler messageQueue,looper

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 处理器获取 当前线程中的 循环器对象, 循环器 从 消息队列中 取出 消息, 给 处理器 ...

  5. java 不通过第三个字符串,实现一个字符串倒序

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha String s="abcde"; String  s2 = new ...

  6. CF597C Subsequences 树状数组 + 动态规划

    设$f(i, j)$表示以$i$结尾的,长为$j$的上升子序列的数量 转移时用树状数组维护即可 复杂度为$O(kn \log n)$ 注:特判0 #include <cstdio> #in ...

  7. 2、Redis的基础知识

     写在前面的话:读书破万卷,编码如有神 -------------------------------------------------------------------- 主要内容包括: red ...

  8. POJ Anniversary party 树形DP

    /* 树形dp: 给一颗树,要求一组节点,节点之间没有父子关系,并且使得所有的节点的权值和最大 对于每一个节点,我们有两种状态 dp[i][0]表示不选择节点i,以节点i为根的子树所能形成的节点集所能 ...

  9. windows下python2.7.14版本的安装

    本文主要对window下如何安装Python进行图解说明 步骤一.从官网下载相应的版本(本文以2.7.14为例),https://www.python.org/downloads/release/py ...

  10. 重温PHP之冒泡排序

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小.首字母从A到Z)错误就把他们交换过来.走 ...