積少成多

          垃圾堆

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            29 Posts :: 1 Stories :: 5 Comments :: 0 Trackbacks
          /**
           * 改類掩飾了如何通過java.bean的類去獲知bean中的屬性并調用相應的set get方法
           
          */
          import java.beans.*;
          import java.lang.reflect.Method;
          public class JavaBeanInvoke {
              
          public static void main(String args[])throws Exception{
                  test1();
              }
              
              
          public static void test1()throws Exception{
                  Person person 
          = Person.class.newInstance();
                  
                  BeanInfo beaninfo 
          = Introspector.getBeanInfo(Person.class);
                  PropertyDescriptor[] porpertydescriptors 
          = beaninfo.getPropertyDescriptors();
                  
          for(PropertyDescriptor pd:porpertydescriptors){
                      System.out.println(pd.getName());
                      
          if(pd.getName().endsWith("name")){
                          Method setMethod
          =pd.getWriteMethod();
                          Method getMethod
          =pd.getReadMethod();
                          setMethod.invoke(person,
          "ShenZiping");
                          System.out.println(getMethod.invoke(person));
                          
          break;
                      }
                  }
              }
              
              
          public static void test2() throws Exception{
                  Person person 
          = Person.class.newInstance();
                  PropertyDescriptor pd 
          = new PropertyDescriptor("age",Person.class);
                  Method setMethod 
          = pd.getWriteMethod();
                  Method getMethod 
          = pd.getReadMethod();
                  setMethod.invoke(person, 
          56);
                  System.out.println(getMethod.invoke(person));
              }
          }

          /**
           * 代碼舉例了beanUtil包的普遍用法,需要apache的logging包和beanUtils包
           
          */
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Date;
          import java.util.HashMap;
          import java.util.Map;

          import org.apache.commons.beanutils.*;
          public class BeanUtilsInvoke {
              
          public static void main(String args[])throws Exception{
                  test1();
                  test2();
                  test3();
                  test4();
                  myConvertTest();
              }
              
          public static void test1()throws Exception{
                  Person person 
          = new Person();
                  BeanUtils.copyProperty(person, 
          "name""ShenZiping");
                  System.out.println(
          "test1"+person.getName());
              }
              
          public static void test2() throws Exception{
                  Person person 
          = new Person();
                  Map
          <String, String> map = new HashMap<String, String>();
                  map.put(
          "name""ShenZiping");
                  map.put(
          "age""65");
                  BeanUtils.populate(person, map);
                  System.out.println(
          "test2"+person.getAge());
                  System.out.println(
          "test2"+person.getName());
              }
              
              
          public static void test3() throws Exception{
                  Person p1 
          = new Person();
                  Person p2 
          = new Person();
                  p1.setAge(
          98);
                  p1.setName(
          "ShenZiping");
                  BeanUtils.copyProperties(p2, p1);
                  System.out.println(
          "test3"+p2.getAge());
                  System.out.println(
          "test3"+p2.getName());
              }
              
              
          public static void test4() throws Exception{
                  Person person 
          = new Person();
                  Man man 
          = new Man();
                  person.setName(
          "ShenZiping");
                  BeanUtils.copyProperties(man, person);
                  System.out.println(
          "test4"+man.getName());
              }
              
              
          public static void myConvertTest(){
                  ConvertUtils.register(
          new Converter(){
                      
          public Object convert(Class clazz, Object value){
                          
          if(clazz==Date.class){
                              SimpleDateFormat dateFormat 
          = new SimpleDateFormat("yyyy-MM-dd");
                              
          try{
                                  
          return dateFormat.parse((String)value);
                              }
          catch(ParseException e){
                                  
          throw new RuntimeException("invalid format");
                              }
                          }
                          
          return null;
                      }
                  }, Date.
          class);
                  Date date 
          = (Date)ConvertUtils.convert("2010-01-15",Date.class);
                  System.out.println(
          "myConvertTest"+date);
              }
          }
          posted on 2011-06-13 12:38 思無 閱讀(805) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 伊春市| 柘荣县| 沈丘县| 吉林市| 右玉县| 兴文县| 库车县| 蛟河市| 金湖县| 东乡县| 兴宁市| 古蔺县| 陇川县| 清涧县| 四川省| 香格里拉县| 乌拉特后旗| 静海县| 肃北| 永靖县| 台中县| 商洛市| 新余市| 靖宇县| 临泽县| 栾川县| 茌平县| 屏边| 灵宝市| 娱乐| 平度市| 景泰县| 仪征市| 翁源县| 乐都县| 巴马| 肇东市| 武义县| 南陵县| 丰县| 土默特左旗|