2

我想获取 POJO 的属性名称的数组(或列表)。我尝试了 commons-beanutil's BeanUtils.describe(obj),但它需要一个对象实例。但是,如果我只有那个类,没有公共的无参数构造函数怎么办。我不能clazz.newInstance()用来生成对象。

我应该如何解决?有没有可以挖掘类并传递属性名称的库?

(我知道我可以使用反射来手动解析类结构,但我正在寻找一个方便的库)

谢谢。

4

2 回答 2

4

我从来没有使用过它(或任何东西java.beans,就此而言),但java.beans.Introspector.getBeanInfo(Class)可能是你正在寻找的。

于 2010-12-15T07:55:51.350 回答
4

Java 内置了反射实用程序 - 您可以使用它。看看Class 的 java doc

例如,使用反射Demo.class.getMethods();来获取调用的类的所有 getter 方法Demo(没有实例化它。)

List<Method> allGetterMethodsOfClassDemo() = new ArrayList<Method>();
for(Method method : Demo.class.getMethods()){
  if(method.getName().startsWith("get") || method.getName().startsWith("is")) {
    allGetterMethodsOfClassDemo.add(method);
  }
}
于 2010-12-15T07:41:36.957 回答