我有一个数组字段的PropertyDescriptor,如下所示。
Foo[] fooArray;
如何获取Foo
的PropertyDescriptor,以便我能够获得该类的getter和setter方法?
答案 0 :(得分: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();
答案 1 :(得分:2)
您可以通过Class.getComponentType()
访问数组类的组件类型。
因此,为BeanDescriptor
Foo
写{/ 1}}创建fooArray
BeanDescriptor d = new BeanDescriptor(fooArray.getClass().getComponentType());
然后BeanDescriptor
允许您检索所有PropertyDescriptor
bean属性的Foo
。