直接获取对象的某个值
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;}@Overridepublic 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 {@Testpublic 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的属性名相同!*/@Testpublic 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);}@Testpublic 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);}} }