我有一个数组字段的PropertyDescriptor,如下所示。如何获取数组元素的PropertyDescriptor?
Foo[] fooArray;
我如何获得Foo
的PropertyDescriptor的,让我能够获取类的getter和setter方法?
我有一个数组字段的PropertyDescriptor,如下所示。如何获取数组元素的PropertyDescriptor?
Foo[] fooArray;
我如何获得Foo
的PropertyDescriptor的,让我能够获取类的getter和setter方法?
如果Class
对象表示数组类型,你可以要求元素类型:
Class<?> clazz = Foo[].class;
assert (clazz.isArray());
assert Foo.class.equals(clazz.getComponentType());
问计“的PropertyDescriptor
” 一类没有什么意义,但也许你”重新找BeanInfo
:
BeanInfo infoAboutFoo = Introspector.getBeanInfo(clazz.getComponentType());
PropertyDescriptor[] fooDescriptors = infoAboutFoo.getPropertyDescriptors();
可以经由Class.getComponentType()
访问数组类的组件类型。
因此创建一个BeanDescriptor
为Foo
给出fooArray
写
BeanDescriptor d = new BeanDescriptor(fooArray.getClass().getComponentType());
的BeanDescriptor
然后允许您检索PropertyDescriptor
所有Foo
bean属性。
谢谢,这个伎俩。我使用了一个稍微修改过的'getBeanInfo'调用,如下所示: 'BeanInfo infoAboutFoo = Introspector.getBeanInfo(clazz.getComponentType(),Object.class);' – technocrat