究竟是内省还是内省

中国文化之博大精深之内省还是内省,究竟他是读(xing)还是(sheng)呢,通过百度引擎貌似晓得,他是读(xing)。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站建设、叶城网络推广、小程序制作、叶城网络营销、叶城企业策划、叶城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供叶城建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

下面我们就对内省做一下简单介绍:

1.内省是java语言对bean类属性、事件的一种处理方法

2.为什么要学内省?开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。

3.内省访问JavaBean属性的两种方式:

通过PropertyDescriptor类操作Bean的属性

通过Introspector类获得Bean对象的 BeanInfo,然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor ),通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,然后通过反射机制来调用这些方法。

下面写一下测试代码

Java代码

 
 
 
  1. /*    
  2.      * 通过Introspector类获得Bean对象的 BeanInfo, 然后通过 BeanInfo 来获取属性的描述器(    
  3.      * PropertyDescriptor ) 通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,    
  4.      * 然后通过反射机制来调用这些方法。    
  5.      */    
  6.     @Test    
  7.     public void test() throws IntrospectionException, IllegalArgumentException,     
  8.             IllegalAccessException, InvocationTargetException {     
  9.         Student st = new Student();     
  10.         // 1、通过Introspector类获得Bean对象的 BeanInfo,     
  11.         BeanInfo entity = Introspector.getBeanInfo(Student.class);     
  12.         // 2、然后通过 BeanInfo 来获取属性的描述器( PropertyDescriptor )     
  13.         PropertyDescriptor pdrs[] = entity.getPropertyDescriptors();     
  14.         // 3、通过这个属性描述器就可以获取某个属性对应的 getter/setter 方法,     
  15.         for (PropertyDescriptor pd : pdrs) {     
  16.             // System.out.println(pd.getName());     
  17.             /*    
  18.              * System.out.println(pd.getShortDescription());    
  19.              * System.out.println(pd.getDisplayName());    
  20.              */    
  21.             if (pd.getName().equals("age")) {  //age是什么类型?     
  22.                 Method md = pd.getWriteMethod();     
  23.                 md.invoke(st, 12);     
  24.             }     
  25.         }     
  26.              
  27. //      System.out.println(st.getAge());     
  28.     
  29.     }   

bean类

Java代码

 
 
 
  1. package cn.csdn.Introspector;     
  2.     
  3. public class Student {     
  4.     private String name;     
  5.     private int age;     
  6.     public int getAge() {     
  7.         return age;     
  8.     }     
  9.     public void setAge(int age) {     
  10.         this.age = age;     
  11.     }     
  12.     public String getEmail() {     
  13.         return email;     
  14.     }     
  15.     public void setEmail(String email) {     
  16.         this.email = email;     
  17.     }     
  18.     private String email;     
  19.     public String getXxx(){     
  20.         return "Longmanfei";     
  21.     }     
  22. }   

分享名称:究竟是内省还是内省
转载来于:http://www.gawzjz.com/qtweb2/news47/27347.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联