commons-beanutils是通过内省来完成的。

需要两个包:

  • commons-beanutils-1.8.3.jar
  • commons-logging-1.1.1.jar

JavaBean类:

  1. package cn.zy.study;
  2. /**
  3. * 提供get和set方法
  4. * 并有一个无参的构造方法
  5. * @author zy
  6. *
  7. */
  8. public class Person {
  9.  
  10. private String name;
  11. private int age;
  12. private String gender;
  13. public Person() {
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. @Override
  22. public String toString() {
  23. return "Person [name=" + name + ", age=" + age + ", gender=" + gender
  24. + "]";
  25. }
  26. public int getAge() {
  27. return age;
  28. }
  29. public void setAge(int age) {
  30. this.age = age;
  31. }
  32.  
  33. public String getGender() {
  34. return gender;
  35. }
  36. public void setGender(String gender) {
  37. this.gender = gender;
  38. }
  39.  
  40. }

  

对bean类的操作

  1. package cn.test;
  2.  
  3. import java.lang.reflect.InvocationTargetException;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6.  
  7. import org.apache.commons.beanutils.BeanUtils;
  8. import org.junit.Test;
  9.  
  10. import cn.zy.study.Person;
  11.  
  12. public class Demo3 {
  13.  
  14. @Test
  15. public void fun1() throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{
  16. //用Class类的forName方法来获取对应的class对象
  17. String className = "cn.zy.study.Person";
  18. Class clazz = Class.forName(className);
  19. //使用clazz对应类的默认构造器创造实例
  20. Object bean = clazz.newInstance();
  21. /**使用beanutils工具设置bean类的属性值,
  22. * 所有的属相值都可以设置成String类型,将会自动转换
  23. * 没有设置属性的值将为null
  24. */
  25. BeanUtils.setProperty(bean, "name", "Scott");
  26. BeanUtils.setProperty(bean, "age", "17");
  27. System.out.println(bean);
  28. //得到bean类的属性值,注意属值都将变成String类型
  29. String name = BeanUtils.getProperty(bean, "name");
  30. String age = BeanUtils.getProperty(bean, "age");
  31.  
  32. }
  33.  
  34. @Test
  35. /**
  36. * 将map直接封装到一个bean中
  37. */
  38. public void fun2() throws InstantiationException, IllegalAccessException, InvocationTargetException{
  39. Map<String,String> map = new HashMap();
  40. map.put("name","Scott");
  41. map.put("age","15");
  42. //利用类的class属性来获取Class对象,并创建
  43. Person bean = Person.class.newInstance();
  44. //将map数据填充到Javabean中
  45. BeanUtils.populate(bean, map);
  46. System.out.println(bean);
  47. }
  48.  
  49. }

  

commons-beanutils的使用的更多相关文章

  1. Apache Commons BeanUtils

    http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/org/apache/commons/beanut ...

  2. myeclipse的项目导入到eclipse下,com.sun.org.apache.commons.beanutils.BeanUtils不能导入

    com.sun.org.apache.commons.beanutils.BeanUtils这个包不能引入了怎么办自己下了个org.apache.commons的jar包了之后,改成import or ...

  3. 关闭log4j 输出 DEBUG org.apache.commons.beanutils.*

    2016-03-23 10:52:26,860 DEBUG org.apache.commons.beanutils.MethodUtils - Matching name=getEPort on c ...

  4. Apache Commons Beanutils对象属性批量复制(pseudo-singleton)

    Apache Commons Beanutils为开源软件,可在Apache官网http://commons.apache.org/proper/commons-beanutils/download_ ...

  5. Commons Beanutils使用setProperty() - 就是爱Java

    有时不能只依靠getter/setter操作bean,如:需要名字动态取得的,或是访问bean内的field,甚至是集合或数组内bean的field,利用反射机制对bean的field进行处理,这时候 ...

  6. org.apache.commons.beanutils.BeanMap简单使用例子

    一.org.apache.commons.beanutils.BeanMap; 将一个java bean允许通过map的api进行调用, 几个支持的操作接口: Object get(Object ke ...

  7. 对于Java Bean的类型转换问题()使用 org.apache.commons.beanutils.ConvertUtils)

    在进行与数据库的交互过程中,由数据库查询到的数据放在 map 中,由 map 到 JavaBean 的过程中可以使用 BeanUtils.populate(map,bean)来进行转换 这里要处理的问 ...

  8. Apache Commons Beanutils 三 (BeanUtils、ConvertUtils、CollectionUtils...)

    前言 前面已经学习了Apache Commons Beanutils包里的PropertyUtils和动态bean,接下来将学习剩下的几个工具类,个人觉得还是非常实用的,特别是CollectionUt ...

  9. Apache Commons Beanutils 二 (动态Bean - DynaBeans)

    相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...

  10. Apache Commons Beanutils 一 (使用PropertyUtils访问Bean属性)

    BeanUtils简要描述 beanutils,顾名思义,是java bean的一个工具类,可以帮助我们方便的读取(get)和设置(set)bean属性值.动态定义和访问bean属性: 细心的话,会发 ...

随机推荐

  1. loadrunner 性能测试报error-27796的解决

    网上观点: 在注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值:TcpTimedWai ...

  2. Linux共享库 zlog日志

    [ global] strict init = false buffer min = buffer max = 2MB rotate lock file= /tmp/zlog.lock [format ...

  3. C++ 结构体和枚举

    共同体 共同体(union) 是一种数据格式, 它能够存储不同的数据类型, 但只能同时存储其中的一种类型.也就是说, 结构可以同时存储int.long 和 double, 共同体只能存储int.lon ...

  4. moodle中的完形填空题的文本编写方法

    moodle中的完形填空题的文本编写方法 [完形填空题]考题把一段文字挖去一些空,让考生根据上下文正确地完成这些填空.完型填空题中的一段短文可以包括各种题目,如选择,填空,和数字题等. 题目的编辑是在 ...

  5. C#的publisher与subscriber,事件发布者与订阅者

    说明:示例借鉴自这里,但原版很不友好,于是修改了下,一目了然. 直接上代码: using System; using System.Collections.Generic; using System. ...

  6. e797. 显示JSlider的标记

    The slider supports two levels of tick marks, major and minor. Typically, the minor tick-mark spacin ...

  7. Java获取正在执行的函数名

    利用StackTrace堆栈轨迹获取某个时间的调用堆栈状态. package com.dsp.demo; public class TechDemo { public static void main ...

  8. 软件需求规格说明书(转自http://blog.csdn.net/li_canhui/article/details/6927540)

    转自http://blog.csdn.net/li_canhui/article/details/6927540 1概述 1.1编写目的 指出编写<需求规格说明书>的目的.下面是示例: 编 ...

  9. Python——eventlet.websocket

    使用该模块可以方便地创建 websocket 服务器,要创建一个websocket服务器,只需要将一个句柄函数用装饰器 WebSocketWSGI 装饰即可,然后这个函数就可以当做一个WSGI应用: ...

  10. Linux 系统安装配置PHP服务(源码安装)

    简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要 ...