在此项目中看到了BeanUtils这个神奇的类,看了半天知道它是复制对象的,其实真正的好处现在还不知道。上网百度,做了一下练习。
BeanUtils需要导入的jar包:
(1)common-logging-1.1.1.jar
(2)common-beanutils.jar
package testEpcc;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
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 TestBeanUtils {
//设置属性
@Test
public void test1() throws Exception{
Person p=new Person();
BeanUtils.setProperty(p, "name","xiazdong");
BeanUtils.setProperty(p, "age",20);
BeanUtils.setProperty(p, "sex","女");
System.out.println(p.getName());
System.out.println(p.getAge());
System.out.println(p.getSex());
}
//自定义转换器
@Test
public void test2() throws Exception{
Person p=new Person();
ConvertUtils.register(new Converter(){
@Override
public <T> T convert(Class<T> type, Object value) {
// TODO Auto-generated method stub
if(value==null){
return null;
}
if(!(value instanceof String)){
throw new ConversionException("conversion error");
}
String str=(String)value;
if(str.trim().equals("")){
return null;
}
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
try {
return (T) sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}, Date.class);
BeanUtils.setProperty(p, "birth", "2011-10-10");
System.out.println(p.getBirth().toLocaleString());
}
//使用内置转换器
@Test
public void test3() throws Exception{
Person p=new Person();
ConvertUtils.register(new DateLocaleConverter(),Date.class);
BeanUtils.setProperty(p, "name", "zqy");
BeanUtils.setProperty(p, "birth", "1995-04-18");
System.out.println(p.getName());
System.out.println(p.getBirth().toLocaleString());
}
//使用内置的转换器
@Test
public void test4(Person p1) throws Exception{
Person p=new Person();
ConvertUtils.register(new DateLocaleConverter(),Date.class);
BeanUtils.setProperty(p, "name", "zqy");
BeanUtils.setProperty(p, "birth", "1995-04-18");
BeanUtils.copyProperties(p, p1);
System.out.println(p.getBirth().toLocaleString());
}
}
用单元测试需要导入的jar包
junit-4.9.jar