2016-03-14 90 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屬性。