我正在搜索类似于BeanUtils.describe的内容,但正在处理.class
,而不是对象?有人帮忙吗?目前我正在使用默认的getHeaders方法处理对象列表,如下所示。
public class SimpleList<E> {
protected final Class<E> clazz;
SimpleList(Class<E> clazz) {
this.clazz = clazz;
}
public String[] getHeaders() {
Map props = BeanUtils.describe(clazz); // replace this with something
return (String[]) props.keySet().toArray();
}
}
答案 0 :(得分:10)
使用Introspector
API:
PropertyDescriptor[] propertyDescriptors =
Introspector.getBeanInfo(beanClass).getPropertyDescriptors();
List<String> propertyNames = new ArrayList<String>(propertyDescriptors.length);
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
propertyNames.add(propertyDescriptor.getName());
}
答案 1 :(得分:4)
你非常想要PropertyUtils.getPropertyDescriptors()
。它返回一个PropertyDescriptor
个对象数组,您需要从中提取名称。