俺要跳槽啦 后天面试Android 哦也 这几天java基础过一遍 明天android基础过一遍 哦也 后天期待成功
BeanUtils工具包下载地址:http://commons.apache.org/proper/commons-beanutils/ BeanUtils中还引用了一个包logging下载地址:
http://commons.apache.org/proper/commons-logging/
实例如下
package com.java.xiong.beanUtils0302; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConversionException; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; import org.apache.commons.beanutils.locale.converters.DateLocaleConverter; import org.junit.Test; public class Test1 { @Test public void test1() throws IllegalAccessException, InvocationTargetException, IllegalArgumentException, SecurityException, InstantiationException, NoSuchMethodException, ClassNotFoundException { String name = "xiong"; String age = "24"; String brday = "1990-09-09"; Person p = (Person) (Class.forName( "com.java.xiong.beanUtils0302.Person").getConstructor() .newInstance()); // 因为BeanUtils只支持8种基本类型 其余的类型需要注册 ConvertUtils.register(new Converter() { @Override public <T> T convert(Class<T> type, Object value) { if (value == null) { return null; } if (!(value instanceof String)) { throw new ConversionException("只支持String类型"); } if (value.toString().trim().equals("")) { return null; } try { Date date = null; SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); date = df.parse(value.toString()); return (T) date; } catch (ParseException e) { throw new RuntimeException(e); } } }, Date.class); // 调用setProperty为beal赋值 BeanUtils.setProperty(p, "name", name); BeanUtils.setProperty(p, "age", age); BeanUtils.setProperty(p, "brday", brday); System.out.println(p.getName()); System.out.println(p.getAge()); System.out.println(p.getBrday()); } @Test public void test2() throws Exception { Class<?> cl = Class.forName("com.java.xiong.beanUtils0302.Person"); Constructor<?> con = cl.getConstructor(); // 获取Person对象 Person p = (Person) con.newInstance(); String name = "xiong"; String age = "24"; String brday = "1990-09-09"; ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.setProperty(p, "name", name); BeanUtils.setProperty(p, "age", age); BeanUtils.setProperty(p, "brday", brday); System.out.println(p.getName()); System.out.println(p.getAge()); System.out.println(p.getBrday()); } @Test public void test3() throws Exception { Map<String, String> map = new LinkedHashMap<String, String>(); map.put("name", "xiong"); map.put("age", "24"); map.put("brday", "1990-09-09"); Person p = (Person) (Class.forName( "com.java.xiong.beanUtils0302.Person").getConstructor() .newInstance()); ConvertUtils.register(new DateLocaleConverter(), Date.class); BeanUtils.populate(p, map); System.out.println(p.getName()); System.out.println(p.getAge()); System.out.println(DateFormat.getDateInstance().format(p.getBrday())); } }