http://hi.baidu.com/laopin10/blog/item/6f09eb3f364d57f3838b1330.html
package apache.commons.lang.test;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import apache.commons.lang.test.model.Model;
import apache.commons.lang.test.model.Sub;
public class BeanUtilsTest2 {
public static void main(String[] args) throws Exception {
Model model = new Model();
Sub sub = new Sub();
sub.setDesc("我是嵌套对象");
model.setSub(sub);
BeanUtils.copyProperty(model, "name", "名称");
System.out.println(model.getName());
// 返回属性名---属性值 Map
Map map = BeanUtils.describe(model);
model.setMap(map);
System.out.println(map.get("name"));
String[] hobbys = new String[] { "篮球", "台球" };
model.setHobbys(hobbys);
// 针对数组属性的操作
System.out.println(BeanUtils.getIndexedProperty(model, "hobbys[1]"));
// 针对Map属性的操作
String value = BeanUtils.getMappedProperty(model, "map(class)");
System.out.println(value);
//得到嵌套对象的属性
System.out.println(BeanUtils.getNestedProperty(model, "sub.desc"));
//得到一般的属性
System.out.println(BeanUtils.getProperty(model, "name"));
//浅的拷贝
Model model2= (Model) BeanUtils.cloneBean(model);
//这里还是返回的true,属性只是简单的拷贝引用
System.out.println(model2.getSub()==sub);
}
}
BeanUtils 通过反射动态的拷贝一个对象的属性到另个对象。
package apache.commons.lang.test;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import apache.commons.lang.test.model.Model;
import apache.commons.lang.test.model.Sub;
import apache.commons.lang.test.model.UI;
public class BeanUtilsTest {
public static void main(String[] args) {
// BeanUtils utils = new BeanUtils();
UI ui = new UI();
Sub sub = new Sub();
sub.setDesc("aaaaaa");
// System.out.println("source:" + sub);
ui.setName("aaa");
ui.setSub(sub);
Model model = new Model();
try {
// 拷贝两个对象的∩,并且如果是对象的话只拷贝引用,并不会递归进去深层的seter
BeanUtils.copyProperties(model, ui);
System.out.println(model.getAge());
System.out.println(model.getName());
System.out.println(model.getSub());
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
分享到:
相关推荐
本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串处理、网络爬虫以及网页数据抓取等主题。 首先,让我们来看看文件处理方面。`FileUtil`类通常包含对文件的...
本资源包括常用工具类,目前收录了数组工具类、异步工具类、base64工具类、bitmap工具类、缓存工具类、时间工具类、http连接、json、IO、Map、MD5、数据库、SD卡、UbbToHtml等工具类合集
标题中的"C#工具类库类库 包含所有的常用工具类"暗示了这是一个集合,包含了多种实用工具类,能够极大地提升开发效率。这些工具类涵盖了从文件操作到网络通信的多个领域。 首先,FTP操作类是用于与FTP服务器进行...
"常用工具类"这个主题涵盖了Java编程中一系列实用的工具方法,这些方法可以帮助我们处理日常开发中的各种问题。在本文中,我们将深入探讨一些常见的Java工具类,并了解它们如何增强我们的代码质量。 首先,我们要...
C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...
"Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...
本文将深入探讨“C#.net常用工具类,全部源码”这一主题,涵盖其核心概念、功能以及如何利用这些工具类提高开发效率。 首先,"常用工具类"是指在开发过程中频繁使用的、通用的类库,它们提供了许多常见的功能,如...
在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。这些工具类通常包含静态方法,不涉及实例化,直接通过类名调用,降低了代码冗余,提高了代码复用...
常用工具类,java函数糖,安卓函数糖 没整到jcenter上,暂时就用aar包吧,也挺省劲:下载地址 下载下来文件名是:ayo-lang.aar,拷到libs目录里 然后在build.gradle里引入: repositories { flatDir { dirs 'libs'...
Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...
"开发常用工具类"这个主题涵盖了各种不同领域的实用功能,例如字符串处理、日期时间操作、集合操作等。下面将详细介绍这些工具类中的常见知识点: 1. **字符串工具类**: - `StringUtils`:Apache Commons Lang ...
"java常用工具类"这个主题涵盖了Java开发中常用的类和方法,这些工具类可以帮助我们简化编程工作,提高代码的可读性和可维护性。在Java中,`java.util`包就是这样一个包含大量工具类的包,提供了很多实用的功能。 1...
【标题】"安卓开发框架工具类相关-Android快速开发系列10个常用工具类.rar" 涉及的是Android应用程序开发中的一个关键方面——工具类的集合。在Android开发中,工具类通常包含一系列静态方法,用于执行常见的、重复...
"java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....
本文将详细解析“java开发常用工具类大全”中涉及的关键知识点,包括但不限于输入字符校验、数据转换、网络操作、加密解密、JSON处理、图像操作以及数据库操作。 1. **输入字符校验类**: 这类工具通常包含对字符...
本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据处理、数值计算以及XML和Web工具类。 1. **日历和时间处理**: Java中`java.util.Calendar`和`java....
"Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...
"java常用工具类整理"这个主题涵盖了Java开发中常用的工具类,这些类在日常编程中非常实用,能大大提高开发效率。这里我们将深入探讨一些常见的Java工具类,并结合`com-jarvis-base`这个文件名,推测这是一个基础...