Java工具类之Apache的BeanUtils

Commons Beanutils是一组专门用于操作Bean的工具类,目前很多流行的框架基本都离不开他。

版本:commons-beanutils-1.8.3.jar

1、获取字段值

Java代码  

SampleBean bean1 = newSampleBean();
bean1.setName("rensanning");
bean1.setAge(31);

String name =BeanUtils.getProperty(bean1, "name");
String age  = BeanUtils.getProperty(bean1,"age");
 
System.out.println(name);
System.out.println(age);


2、设置字段值

Java代码  

SampleBean bean2 = newSampleBean();
BeanUtils.setProperty(bean2,"name", "rensanning");
BeanUtils.setProperty(bean2,"age", 31);
 
System.out.println(bean2.getName());
System.out.println(bean2.getAge());


3、赋值Bean

Java代码  

SampleBean bean3 = newSampleBean();
bean3.setName("rensanning");
bean3.setAge(31);
 
SampleBean clone = (SampleBean)BeanUtils.cloneBean(bean3);
 
System.out.println(clone.getName());
System.out.println(clone.getAge());


4、Bean的describe

Java代码  

SampleBean bean4 = newSampleBean();
bean4.setName("rensanning");
bean4.setAge(31);
 
@SuppressWarnings("unchecked")
Map<String, String> map4= BeanUtils.describe(bean4);
 
System.out.println(map4.get("name"));
System.out.println(map4.get("age"));


5、Bean的populate

Java代码  


SampleBean bean5 = newSampleBean();
 
Map<String, String> map5= new HashMap<String, String>();
map5.put("name", "rensanning");
map5.put("age","31");
 
BeanUtils.populate(bean5,map5);
 
System.out.println(bean5.getName());
System.out.println(bean5.getAge());


6、获取Bean的数组集合字段值

Java代码  

SampleBean bean6 = newSampleBean();
bean6.setArray(newString[]{"a", "b", "c"});
List<String> list0 = newArrayList<String>();
list0.add("d");
list0.add("e");
list0.add("f");
bean6.setList(list0);
 
String[] array =BeanUtils.getArrayProperty(bean6, "array");
 
System.out.println(array.length);//3
System.out.println(array[0]);//"a"
System.out.println(array[1]);//"b"
System.out.println(array[2]);//"c"
 
String[] list = BeanUtils.getArrayProperty(bean6,"list");
System.out.println(list.length);//3
System.out.println(list[0]);//"d"
System.out.println(list[1]);//"e"
System.out.println(list[2]);//"f"
 
System.out.println(BeanUtils.getProperty(bean6,"array[1]"));//"b"
System.out.println(BeanUtils.getIndexedProperty(bean6,"array", 2));//"c"


7、获取Bean的Map字段值

Java代码  

SampleBean bean7 = newSampleBean();
Map<String, String> map =new HashMap<String, String>();
map.put("key1","value1");
map.put("key2","value2");
bean7.setMap(map);
 
String value1 =BeanUtils.getMappedProperty(bean7, "map", "key1");
System.out.println(value1);//"value1"
 
String value2 = BeanUtils.getMappedProperty(bean7,"map", "key2");
System.out.println(value2);//"value2"
 
System.out.println(BeanUtils.getProperty(bean7,"map.key1"));//"value1"
System.out.println(BeanUtils.getProperty(bean7,"map.key2"));//"value2"



8、获取Bean的嵌套字段值

Java代码  

SampleBean bean = newSampleBean();
NestedBean nestedBean = newNestedBean();
nestedBean.setNestedProperty("xxx");
bean.setNestedBean(nestedBean);
 
String value =BeanUtils.getNestedProperty(bean, "nestedBean.nestedProperty");
System.out.println(value);//"xxx"
 
System.out.println(BeanUtils.getProperty(bean,"nestedBean.nestedProperty"));//"xxx"



9、URL字段的特殊处理

Java代码  


SampleBean bean8 = newSampleBean();
 
BeanUtils.setProperty(bean8,"url", "http://www.google.com/");
 
URL url = bean8.getUrl();
System.out.println(url.getProtocol());//"http"
System.out.println(url.getHost());//"www.google.com"
System.out.println(url.getPath());//"/"


10、日期的转化

Java代码  

SampleBean bean9 = new SampleBean();   
  
DateConverter converter = new DateConverter();   
converter.setPattern("yyyy/MM/dd HH:mm:ss");   
  
ConvertUtils.register(converter, Date.class);   
ConvertUtils.register(converter, String.class);   
  
BeanUtils.setProperty(bean9, "date", "2010/12/19 23:40:00");   
  
String value9 = BeanUtils.getProperty(bean9, "date");   
System.out.println(value9);//"2010/12/19 23:40:00" 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值