java (内省)Introspector

原创 2013年12月02日 12:06:08

java (内省)Introspector


内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法

PropertyDescriptor类:

  PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
      1. getPropertyType(),获得属性的Class对象;
      2. getReadMethod(),获得用于读取属性值的方法;getWriteMethod(),获得用于写入属性值的方法;
      3. hashCode(),获取对象的哈希值;
      4. setReadMethod(Method readMethod),设置用于读取属性值的方法;
      5. setWriteMethod(Method writeMethod),设置用于写入属性值的方法。
Introspector类:

  将JavaBean中的属性封装起来进行操作。在程序把一个类当做JavaBean来看,就是调用Introspector.getBeanInfo()方法,得到的BeanInfo对象封装了把这个类当做JavaBean看的结果信息,即属性的信息。

  getPropertyDescriptors(),获得属性的描述,可以采用遍历BeanInfo的方法,来查找、设置类的属性


public class BeanInfoUtil {
        
    public static void setPropertyByIntrospector(UserInfo userInfo,String userName)throws Exception{
        BeanInfo beanInfo=Introspector.getBeanInfo(UserInfo.class);
        PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
        if(proDescrtptors!=null&&proDescrtptors.length>0){
            for(PropertyDescriptor propDesc:proDescrtptors){
                if(propDesc.getName().equals(userName)){
                    Method methodSetUserName=propDesc.getWriteMethod();
                    methodSetUserName.invoke(userInfo, "ptu");
                    System.out.println("set userName:"+userInfo.getUserName());
                    break;
                }
            }
        }
    }
    
    public static void getPropertyByIntrospector(UserInfo userInfo,String userName)throws Exception{
        BeanInfo beanInfo=Introspector.getBeanInfo(UserInfo.class);
        PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
        if(proDescrtptors!=null&&proDescrtptors.length>0){
            for(PropertyDescriptor propDesc:proDescrtptors){
                if(propDesc.getName().equals(userName)){
                    Method methodGetUserName=propDesc.getReadMethod();
                    Object objUserName=methodGetUserName.invoke(userInfo);
                    System.out.println("get userName:"+objUserName.toString());
                    break;
                }
            }
        }
    }
    
}

相关文章推荐

Java:内省(Introspector)深入理解

内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。   JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有...

JAVA内省JavaBean(Introspector、BeanInfo和PropertyDescriptor)

JavaBean是一个特殊的java类,主要用于传递数据信息 (在我的博客"黑马程序员_android之SQLite项目分析 "中提到绘制表格时将读取数据库的数据写到了 一个Information类中...

JAVA内省(Introspector)

'ɪntrəspektɜ 什么是Java内省:内省是Java语言对Bean类属性、事件的一种缺省处理方法。 Java内省的作用:一般在开发框架时,当需要操作一个JavaBean时,如果一直用反射来操作...

深入理解Java:内省(Introspector)

一些概念:     内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。   JavaBean是一种特殊的类,主要用于传递数据...
  • JIESA
  • JIESA
  • 2015年09月14日 10:59
  • 210

Java 内省(Introspector)与反射(Reflect)

一、java反射机制       Java反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的...
  • FX_SKY
  • FX_SKY
  • 2014年11月04日 14:45
  • 1076

深入理解Java2:内省(Introspector)

内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。   JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有...

Java高新技术之JavaBean(内省 IntroSpector)

一、Javabean 1.JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 如果要在两个模块之间传递多个信息,...

JAVA的内省机制(introspector)与反射机制(reflection)

http://yangzhibin-java.iteye.com/blog/452068 JAVA的内省机制(introspector)与反射机制(reflection) 博客分类: j...

Java-内省(Introspector)

一些概念:    内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。   JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要...

JAVA内省 Introspector

内省(Introspector)是Java 语言对Bean类属性、事件的一种缺省处理方法。 1、新建一个javabean package com.study.introspector; pu...
  • yyywyr
  • yyywyr
  • 2013年11月22日 08:59
  • 795
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java (内省)Introspector
举报原因:
原因补充:

(最多只允许输入30个字)