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

需要两个包:

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

JavaBean类:

package cn.zy.study;
/**
* 提供get和set方法
* 并有一个无参的构造方法
* @author zy
*
*/
public class Person { private String name;
private int age;
private String gender;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", gender=" + gender
+ "]";
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
} }

  

对bean类的操作

package cn.test;

import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map; import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test; import cn.zy.study.Person; public class Demo3 { @Test
public void fun1() throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException{
//用Class类的forName方法来获取对应的class对象
String className = "cn.zy.study.Person";
Class clazz = Class.forName(className);
//使用clazz对应类的默认构造器创造实例
Object bean = clazz.newInstance();
/**使用beanutils工具设置bean类的属性值,
* 所有的属相值都可以设置成String类型,将会自动转换
* 没有设置属性的值将为null
*/
BeanUtils.setProperty(bean, "name", "Scott");
BeanUtils.setProperty(bean, "age", "17");
System.out.println(bean);
//得到bean类的属性值,注意属值都将变成String类型
String name = BeanUtils.getProperty(bean, "name");
String age = BeanUtils.getProperty(bean, "age"); } @Test
/**
* 将map直接封装到一个bean中
*/
public void fun2() throws InstantiationException, IllegalAccessException, InvocationTargetException{
Map<String,String> map = new HashMap();
map.put("name","Scott");
map.put("age","15");
//利用类的class属性来获取Class对象,并创建
Person bean = Person.class.newInstance();
//将map数据填充到Javabean中
BeanUtils.populate(bean, map);
System.out.println(bean);
} }

  

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. [kafka] 005_kafka_Java_API

    1.生产者Producer 1)添加依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifact ...

  2. strcpy_s与strcpy的区别

    strcpy_s和strcpy()函数的功能几乎是一样的.];];strcpy_s(str1,,;}#include<iostream>  #include<]; ]; strcpy ...

  3. 启动另一个app

    (一) 通过包名.类名 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用.一般我们知道了另一个应用的包名和MainActivit ...

  4. c算法

    斐波那契 void main() { ]={, }, i; ;i<=;i++) //这里需要注意,for循环虽然<=9, 还有个i++ { a[i] = a[i-] + a[i-]; pr ...

  5. java-selenium下载百度图片

    package download; import java.io.DataInputStream; import java.io.File; import java.io.FileOutputStre ...

  6. 某软件大赛C#版考题整理——【单选题】

    多选题:http://www.cnblogs.com/zxlovenet/p/3525849.html 编程题:http://www.cnblogs.com/zxlovenet/p/3525854.h ...

  7. [转]ESP8266使用详解

    本文转自:yangfengwu 原文地址:http://www.cnblogs.com/yangfengwu/p/5205570.html 这两天测试发现一个地方写错了 发送数据的地方 还发现,自己用 ...

  8. 洞悉linux下的Netfilter&iptables:什么是Netfilter?

    本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了.趁有时间,好好把这方面的东西总结一番.一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共 ...

  9. 多线程---再次认识volatile,Synchronize,lock

    在多线程中我们常用的保证共享变量的方法有很多,现在我们介绍其中的一种,volatile,也是效率最高的一种.    一 .volatile的意义:             为了确保共享变量能被正确和一 ...

  10. HTML5 FileReader

    利用HTML5中的FileReader类,动态切换af中Panel的背景,动态设置img元素的图片 1 if(FileReader){ 2 $('.panel').on("tap" ...