`
lizhensan
  • 浏览: 377805 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

常用的工具类

    博客分类:
  • java
 
阅读更多
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++工具类-常用工具类源码

    本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串处理、网络爬虫以及网页数据抓取等主题。 首先,让我们来看看文件处理方面。`FileUtil`类通常包含对文件的...

    Android开发常用工具类合集

    本资源包括常用工具类,目前收录了数组工具类、异步工具类、base64工具类、bitmap工具类、缓存工具类、时间工具类、http连接、json、IO、Map、MD5、数据库、SD卡、UbbToHtml等工具类合集

    C#工具类库类库 包含所有的常用工具类

    标题中的"C#工具类库类库 包含所有的常用工具类"暗示了这是一个集合,包含了多种实用工具类,能够极大地提升开发效率。这些工具类涵盖了从文件操作到网络通信的多个领域。 首先,FTP操作类是用于与FTP服务器进行...

    常用工具类

    "常用工具类"这个主题涵盖了Java编程中一系列实用的工具方法,这些方法可以帮助我们处理日常开发中的各种问题。在本文中,我们将深入探讨一些常见的Java工具类,并了解它们如何增强我们的代码质量。 首先,我们要...

    C#常用工具类代码集合Util第二版本(自己工作总结)

    C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...

    Java常用工具类大全,工作5年精心整理.zip

    "Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...

    C#.net常用工具类,全部源码

    本文将深入探讨“C#.net常用工具类,全部源码”这一主题,涵盖其核心概念、功能以及如何利用这些工具类提高开发效率。 首先,"常用工具类"是指在开发过程中频繁使用的、通用的类库,它们提供了许多常见的功能,如...

    自己整理的C#常用工具类

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。这些工具类通常包含静态方法,不涉及实例化,直接通过类名调用,降低了代码冗余,提高了代码复用...

    Android代码-AyoLang常用工具类

    常用工具类,java函数糖,安卓函数糖 没整到jcenter上,暂时就用aar包吧,也挺省劲:下载地址 下载下来文件名是:ayo-lang.aar,拷到libs目录里 然后在build.gradle里引入: repositories { flatDir { dirs 'libs'...

    Java常用工具类

    Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...

    开发常用工具类

    "开发常用工具类"这个主题涵盖了各种不同领域的实用功能,例如字符串处理、日期时间操作、集合操作等。下面将详细介绍这些工具类中的常见知识点: 1. **字符串工具类**: - `StringUtils`:Apache Commons Lang ...

    java常用工具类

    "java常用工具类"这个主题涵盖了Java开发中常用的类和方法,这些工具类可以帮助我们简化编程工作,提高代码的可读性和可维护性。在Java中,`java.util`包就是这样一个包含大量工具类的包,提供了很多实用的功能。 1...

    安卓开发框架工具类相关-Android快速开发系列10个常用工具类.rar

    【标题】"安卓开发框架工具类相关-Android快速开发系列10个常用工具类.rar" 涉及的是Android应用程序开发中的一个关键方面——工具类的集合。在Android开发中,工具类通常包含一系列静态方法,用于执行常见的、重复...

    java常用工具类集合(也有转自他人的)

    "java常用工具类集合"是一个综合性的资源,它包含了从不同来源收集的实用工具类,旨在帮助开发者提高效率,减少代码重复。下面,我们将深入探讨这个主题,分析其中可能包含的知识点。 首先,`opslabJutil-master....

    java开发常用工具类大全,程序员必备工具

    本文将详细解析“java开发常用工具类大全”中涉及的关键知识点,包括但不限于输入字符校验、数据转换、网络操作、加密解密、JSON处理、图像操作以及数据库操作。 1. **输入字符校验类**: 这类工具通常包含对字符...

    java开发常用工具类

    本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据处理、数值计算以及XML和Web工具类。 1. **日历和时间处理**: Java中`java.util.Calendar`和`java....

    Java常用工具类包包含各种常用开发工具

    "Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...

    java常用工具类整理

    "java常用工具类整理"这个主题涵盖了Java开发中常用的工具类,这些类在日常编程中非常实用,能大大提高开发效率。这里我们将深入探讨一些常见的Java工具类,并结合`com-jarvis-base`这个文件名,推测这是一个基础...

Global site tag (gtag.js) - Google Analytics