2016-03-14 68 views

回答

3

如果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(); 
+0

谢谢,这个伎俩。我使用了一个稍微修改过的'getBeanInfo'调用,如下所示: 'BeanInfo infoAboutFoo = Introspector.getBeanInfo(clazz.getComponentType(),Object.class);' – technocrat

2

可以经由Class.getComponentType()访问数组类的组件类型。

因此创建一个BeanDescriptorFoo给出fooArray

BeanDescriptor d = new BeanDescriptor(fooArray.getClass().getComponentType()); 

BeanDescriptor然后允许您检索PropertyDescriptor所有Foo bean属性。