直接获取对象的某个值
et.createCell(BeanUtils.getProperty(o, eh.getFieldName()));
简单为对象某个字段赋值
c.setCellValue(BeanUtils.getProperty(datas.get(i),headers.get(j).getFieldName()));

beanUtils的底层是内省。下面是又一个小例子,实现了map和bean的映射注入

package com.itcast.domain;

public class Student {
private String username;
private String password;
private int age;
public Student() {
super();
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String username, String password, int age) {
super();
this.username = username;
this.password = password;
this.age = age;
}
@Override
public String toString() {
return "Student [username=" + username + ", password=" + password
+ ", age=" + age + "]";
} }
package com.itcast.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 com.itcast.domain.Student;
import com.itcast.utils.CommonUtils;
@SuppressWarnings({"rawtypes","unused"})
public class Test01 {
@Test
public void fun1() throws Exception{ Class cla=Class.forName("com.itcast.domain.Student");
Object stu=cla.newInstance(); BeanUtils.setProperty(stu, "username", "guodaxia");
BeanUtils.setProperty(stu, "password", "12345");
BeanUtils.setProperty(stu, "age", "21");//这个类会自动进行类型转换注入 //System.out.println(stu); int age=Integer.valueOf(BeanUtils.getProperty(stu, "age"));//getProperty得到的都是String类型
System.out.println(age);
}
/*
*把map中的属性直接封装到一个bean中
*
* Map:{"username":"zhangsan","password","123"}
* 我们要把map的数据封装到一个javaBean中,要求map的key域bean的属性名相同!
*/
@Test
public void fun2() throws Exception{//将Map的内容直接写入一个bean中
Map<String,String> map=new HashMap<String,String>();
map.put("username", "guodaxia");
map.put("password","961012gz");
map.put("age", "21"); Student stu=new Student();
BeanUtils.populate(stu, map);
System.out.println(stu);
} @Test
public void fun3(){
Map<String,String> map=new HashMap<String,String>();
map.put("username", "guodaxia");
map.put("password","961012gz");
map.put("age", "21"); Student stu=CommonUtils.toBean(map,Student.class);
System.out.println(stu);
}
}
package com.itcast.utils; import java.util.Map;
import java.util.UUID; import org.apache.commons.beanutils.BeanUtils; public class CommonUtils {
/**
* 生成不重复的32位长的大写字符串
* @return
*/
public static String uuid(){
return UUID.randomUUID().toString().replace("-", "").toUpperCase();
} /**
* 把map转换成指定类型的javabean对象
* @param map
* @param clazz
* @return
*/
public static <T> T toBean(Map<String, String> map,Class<T> clazz){ try {
T bean = clazz.newInstance();
BeanUtils.populate(bean, map);
return bean;
} catch (Exception e) {
throw new RuntimeException(e);
} }
}

使用了BeanUtils的简单操作的更多相关文章

  1. x01.MagicCube: 简单操作

    看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...

  2. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  3. GitHub学习心得之 简单操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...

  4. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  5. Linux 中 Vi 编辑器的简单操作

    Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi  filename //打开或新 ...

  6. python(pymysql)之mysql简单操作

    一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...

  7. ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作

    问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...

  8. ORACLE的安装与网页版创建表空间的简单操作以及PLsql的简单操作

    1.oracle的安装: 安装简单易学,在这里不做解释.下载看装包后耐心等待,注意安装目录不要有中文字符,尽量按照指定目录进行安装.安装完成后会占用有大约5g的内存. 如果要卸载oracle,需要用其 ...

  9. C#反射技术的简单操作(读取和设置类的属性)

    public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type ...

随机推荐

  1. NodeJS模块、包、NPM

    1.NodeJS模块        每一个Nodejs都是一个NodeJS模块,包括JS文件,JSON文本文件,二进制模块文件. a.模块的应用               新建一个文件mytest. ...

  2. super用法

    Person类: public class Person { String _name; int _age; public Person(String name,int age) { _name= n ...

  3. 转载:PHP,MySQL的安装与配置

    本文转自:http://www.cnblogs.com/janas/archive/2012/08/27/2659240.html 一.安装配置PHP 1.下载Php的版本zip包之后,解压缩到指定目 ...

  4. Android内存泄漏问题(一)

    前言 不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露. 其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用, ...

  5. HDU 1142 A Walk Through the Forest (记忆化搜索 最短路)

    A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Jav ...

  6. WCF传输Dataset大数据量 -压缩

    由于WCF不能传输DataTable(不能序列化),所以更多项目中都会使用DataSet作为查询集合的首选返回类型,但是由于DataSet会生成很多的状态信息等,所以DataSet体积也会变大,有几种 ...

  7. 使用dnsmasq快速搭建内网DNS

    背景介绍公司有一批测试服务器,之间希望通过自定义的域名进行访问,这样比较方便,但每个人每台机器都维护一个hosts的话会非常麻烦,于是想搭建一个内部的DNS服务器,对自定义的域名进行解析,同时缓存公网 ...

  8. 【hdu2815-Mod Tree】高次同余方程-拓展BadyStepGaintStep

    http://acm.hdu.edu.cn/showproblem.php?pid=2815 题意:裸题... 关于拓展BSGS的详细解释我写了一篇博文:http://www.cnblogs.com/ ...

  9. AssemblyInfo.cs文件参数具体讲解

    在asp.net中有一个配置文件AssemblyInfo.cs主要用来设定生成的有关程序集的常规信息dll文件的一些参数,下面是默认的AssemblyInfo.cs文件的内容具体介绍 //是否符合公共 ...

  10. C#反射技术的相关使用方法

    1.获取同一程序集的类型实例 无参数构造函数 Type t=Type.GetType("AppCode.Employee"); object emp=t.Assembly.Crea ...