如何在Java中获取.class的所有属性?

mar*_*osh 4 java generics

我正在寻找像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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Sea*_*oyd 11

使用IntrospectorAPI:

PropertyDescriptor[] propertyDescriptors = 
    Introspector.getBeanInfo(beanClass).getPropertyDescriptors();
List<String> propertyNames = new ArrayList<String>(propertyDescriptors.length);
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
    propertyNames.add(propertyDescriptor.getName());
}
Run Code Online (Sandbox Code Playgroud)