[转]PropertyUtils的使用

Posted lp2cx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转]PropertyUtils的使用相关的知识,希望对你有一定的参考价值。

Java代码 
  1. package com.sunrex.demo02;  
  2.   
  3. import java.util.List;  
  4.   
  5. public class Address {  
  6.     private String email;  
  7.     private List<String> telephone;  
  8.     public String getEmail() {  
  9.         return email;  
  10.     }  
  11.     public void setEmail(String email) {  
  12.         this.email = email;  
  13.     }  
  14.     public List<String> getTelephone() {  
  15.         return telephone;  
  16.     }  
  17.     public void setTelephone(List<String> telephone) {  
  18.         this.telephone = telephone;  
  19.     }  
  20. }  

(2)第二个

Java代码 
  1. package com.sunrex.demo02;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. public class Person {  
  9.     private String username;  
  10.     private int age;  
  11.     private float stature;//身高  
  12.     private boolean sex;//性别  
  13.     @SuppressWarnings("unchecked")  
  14.     private List list = new ArrayList();  
  15.     private String[] friendsNames;  
  16.     private Map<String, String> maps = new HashMap<String, String>();  
  17.     private Address address;  
  18.       
  19.     public String getUsername() {  
  20.         return username;  
  21.     }  
  22.     public void setUsername(String username) {  
  23.         this.username = username;  
  24.     }  
  25.     public int getAge() {  
  26.         return age;  
  27.     }  
  28.     public void setAge(int age) {  
  29.         this.age = age;  
  30.     }  
  31.     public float getStature() {  
  32.         return stature;  
  33.     }  
  34.     public void setStature(float stature) {  
  35.         this.stature = stature;  
  36.     }  
  37.     public boolean isSex() {  
  38.         return sex;  
  39.     }  
  40.     public void setSex(boolean sex) {  
  41.         this.sex = sex;  
  42.     }  
  43.     @SuppressWarnings("unchecked")  
  44.     public List getList() {  
  45.         return list;  
  46.     }  
  47.     @SuppressWarnings("unchecked")  
  48.     public void setList(List list) {  
  49.         this.list = list;  
  50.     }  
  51.     public Address getAddress() {  
  52.         return address;  
  53.     }  
  54.     public void setAddress(Address address) {  
  55.         this.address = address;  
  56.     }  
  57.     public Map<String, String> getMaps() {  
  58.         return maps;  
  59.     }  
  60.     public void setMaps(Map<String, String> maps) {  
  61.         this.maps = maps;  
  62.     }  
  63.     public String[] getFriendsNames() {  
  64.         return friendsNames;  
  65.     }  
  66.     public void setFriendsNames(String[] friendsNames) {  
  67.         this.friendsNames = friendsNames;  
  68.     }  
  69. }  

 

3、测试类

Java代码 
  1. package com.sunrex.demo02;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.HashMap;  
  5. import java.util.List;  
  6. import java.util.Map;  
  7.   
  8. import org.apache.commons.beanutils.PropertyUtils;  
  9.   
  10. public class PersonTest {  
  11.     @SuppressWarnings("unchecked")  
  12.     public static void main(String[] args) {  
  13.         Person person = new Person();  
  14.         try {  
  15.             //simple property  
  16.             PropertyUtils.setSimpleProperty(person, "username", "李四");  
  17.             PropertyUtils.setSimpleProperty(person, "age", 22);  
  18.             PropertyUtils.setSimpleProperty(person, "stature", 173.5f);  
  19.             PropertyUtils.setSimpleProperty(person, "sex", new Boolean(false));  
  20.               
  21.             //index property  
  22.             //List  
  23.             List list = new ArrayList();  
  24.             list.add("list value 0");  
  25.             list.add("list value 1");  
  26.             String listValue2 = "new list value 1";  
  27.             PropertyUtils.setSimpleProperty(person, "list", list);  
  28.             //将list设置到person之后,可以对里面的值进行修改  
  29.             PropertyUtils.setIndexedProperty(person, "list[1]", listValue2);  
  30.   
  31.             //数组  
  32.             String[] str = {"张三", "王五", "赵钱"};  
  33.             person.setFriendsNames(str);  
  34.             PropertyUtils.setIndexedProperty(person, "friendsNames[2]", "new赵钱");  
  35.               
  36.             //Map  
  37.             Map<String, String> map = new HashMap<String, String>();  
  38.             map.put("key1", "vlaue1");  
  39.             map.put("key2", "vlaue2");  
  40.             map.put("key3", "vlaue3");  
  41.             person.setMaps(map);  
  42.             PropertyUtils.setMappedProperty(person, "maps", "key1", "new value1");  
  43.             PropertyUtils.setMappedProperty(person, "maps(key2)", "maps(key2) value");  
  44.               
  45.             //nest property  
  46.             Address address = new Address();  
  47.             address.setEmail("[email protected]");  
  48.             List<String> telephoneList = new ArrayList<String>();  
  49.             telephoneList.add("12345678911");  
  50.             telephoneList.add("92345678911");  
  51.             address.setTelephone(telephoneList);  
  52.             person.setAddress(address);  
  53.             PropertyUtils.setNestedProperty(person, "address.telephone[1]", "nest 11111111");  
  54.             PropertyUtils.setNestedProperty(person, "address.email", "[email protected]");  
  55.               
  56.             System.out.println(PropertyUtils.getSimpleProperty(person, "username"));  
  57.             System.out.println(PropertyUtils.getSimpleProperty(person, "age"));  
  58.             System.out.println(PropertyUtils.getSimpleProperty(person, "stature"));  
  59.             System.out.println(PropertyUtils.getSimpleProperty(person, "sex"));  
  60.             System.out.println(PropertyUtils.getSimpleProperty(person, "list"));  
  61.             //list  
  62.             System.err.println(PropertyUtils.getIndexedProperty(person, "list[0]"));  
  63.             System.err.println(PropertyUtils.getIndexedProperty(person, "list", 1));  
  64.             //数组  
  65.             System.out.println(PropertyUtils.getIndexedProperty(person, "friendsNames[0]"));  
  66.             System.out.println(PropertyUtils.getIndexedProperty(person, "friendsNames", 1));  
  67.             System.out.println(PropertyUtils.getIndexedProperty(person, "friendsNames[2]"));  
  68.               
  69.             //Map  
  70.             System.err.println(PropertyUtils.getMappedProperty(person, "maps(key1)"));  
  71.             System.err.println(PropertyUtils.getMappedProperty(person, "maps", "key2"));  
  72.             System.err.println(PropertyUtils.getMappedProperty(person, "maps(key3)"));  
  73.               
  74.             //nest--嵌套输出   
  75.             System.out.println(PropertyUtils.getNestedProperty(person, "address.email"));  
  76.             System.out.println(PropertyUtils.getNestedProperty(person, "address.telephone[0]"));  
  77.             System.out.println(PropertyUtils.getNestedProperty(person, "address.telephone[1]"));  
  78.               
  79.             //也可以使用如下方法获取值  
  80.             System.out.println(PropertyUtils.getProperty(person, "address.telephone[1]"));  
  81.         } catch (Exception e) {  
  82.             // TODO Auto-generated catch block  
  83.             e.printStackTrace();  
  84.         }  
  85.     }  
  86. }  

 4、输出结果

李四
22
173.5
false
[list value 0, new list value 1]
list value 0
new list value 1
张三
王五
new赵钱
new value1
[email protected]
12345678911
nest 11111111
nest 11111111
maps(key2) value
vlaue3

















以上是关于[转]PropertyUtils的使用的主要内容,如果未能解决你的问题,请参考以下文章

对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀

BeanUtils.copyProperties VS PropertyUtils.copyProperties

BeanUtils.copyProperties()方法和PropertyUtils.copyProperties()的区别

excel一键大写字母变大写

[转] 使用 Java8 Optional 的正确姿势

转--Windows下将jar包封装成服务程序