获取BeanInfo
最简单的方法如下:
BeanInfo beanInfo = Introspector.getBeanInfo(Test.class);
Introspector.getBeanInfo还有其他参数的方法,主要用来控制返回信息的多少。比如:
BeanInfo beanInfo = Introspector.getBeanInfo(Test.class,Test.class.getSuperclass());
第二个参数是stopClass,即停止查找的类,该类必须是Test类的父类,这样查找BeanInfo的时候就会在stopClass停止。最常见的比如,如果不给定第二个stopClass,那么继承自Object类的所有方法和属性也会在BeanInfo里,如果传入参数Object.class那么Object类的方法和属性就不会显示了。
BeanInfo beanInfo = Introspector.getBeanInfo(Test.class,Introspector.IGNORE_ALL_BEANINFO);
第二个是int类型的标志位,USE_ALL_BEANINFO使用可以发现的所有 BeanInfo 类,这个也是默认属性,IGNORE_IMMEDIATE_BEANINFO忽略与指定 beanClass 相关联的任何 BeanInfo,IGNORE_ALL_BEANINFO忽略与指定 beanClass 相关联的所有 BeanInfo 及其所有父类。
BeanInfo使用
BeanInfo里面有下面这几个重要的方法:
PropertyDescriptor[] getPropertyDescriptors();
获取bean属性,PropertyDescriptor可以获取属性名字(getName),获取该属性的Setter(getWriteMethod())和Getter(getReadMethod())方法。
MethodDescriptor[] getMethodDescriptors();
获取bean中所有的方法,包括上面提到的属性的Setter和Getter方法。
最简单的方法如下:
BeanInfo beanInfo = Introspector.getBeanInfo(Test.class);
Introspector.getBeanInfo还有其他参数的方法,主要用来控制返回信息的多少。比如:
BeanInfo beanInfo = Introspector.getBeanInfo(Test.class,Test.class.getSuperclass());
第二个参数是stopClass,即停止查找的类,该类必须是Test类的父类,这样查找BeanInfo的时候就会在stopClass停止。最常见的比如,如果不给定第二个stopClass,那么继承自Object类的所有方法和属性也会在BeanInfo里,如果传入参数Object.class那么Object类的方法和属性就不会显示了。
BeanInfo beanInfo = Introspector.getBeanInfo(Test.class,Introspector.IGNORE_ALL_BEANINFO);
第二个是int类型的标志位,USE_ALL_BEANINFO使用可以发现的所有 BeanInfo 类,这个也是默认属性,IGNORE_IMMEDIATE_BEANINFO忽略与指定 beanClass 相关联的任何 BeanInfo,IGNORE_ALL_BEANINFO忽略与指定 beanClass 相关联的所有 BeanInfo 及其所有父类。
BeanInfo使用
BeanInfo里面有下面这几个重要的方法:
PropertyDescriptor[] getPropertyDescriptors();
获取bean属性,PropertyDescriptor可以获取属性名字(getName),获取该属性的Setter(getWriteMethod())和Getter(getReadMethod())方法。
MethodDescriptor[] getMethodDescriptors();
获取bean中所有的方法,包括上面提到的属性的Setter和Getter方法。