我有一個數組字段的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