我想获取 POJO 的属性名称的数组(或列表)。我尝试了 commons-beanutil's BeanUtils.describe(obj)
,但它需要一个对象实例。但是,如果我只有那个类,没有公共的无参数构造函数怎么办。我不能clazz.newInstance()
用来生成对象。
我应该如何解决?有没有可以挖掘类并传递属性名称的库?
(我知道我可以使用反射来手动解析类结构,但我正在寻找一个方便的库)
谢谢。
我想获取 POJO 的属性名称的数组(或列表)。我尝试了 commons-beanutil's BeanUtils.describe(obj)
,但它需要一个对象实例。但是,如果我只有那个类,没有公共的无参数构造函数怎么办。我不能clazz.newInstance()
用来生成对象。
我应该如何解决?有没有可以挖掘类并传递属性名称的库?
(我知道我可以使用反射来手动解析类结构,但我正在寻找一个方便的库)
谢谢。
我从来没有使用过它(或任何东西java.beans
,就此而言),但java.beans.Introspector.getBeanInfo(Class)
可能是你正在寻找的。
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);
}
}