我想获得POJO属性名称的数组(或列表)。
我尝试过commons-beanutil的BeanUtils.describe(obj)
,但它需要一个对象实例。
但是如果我只有那个类,没有公共的无参数构造函数会怎么样呢。我无法使用clazz.newInstance()
生成对象。
我该如何解决?是否有任何库可以挖掘类并传递属性名称?
(我知道我可以使用反射来手动解析类结构,但我正在寻找一个方便的库)
感谢。
答案 0 :(得分:4)
Java有自己的反射工具 - 你可以使用它。 Hava看一下java doc of Class。
例如,使用反射Demo.class.getMethods();
来获取名为Demo
的类的所有getter方法(不进行实例化)。
List<Method> allGetterMethodsOfClassDemo() = new ArrayList<Method>();
for(Method method : Demo.class.getMethods()){
if(method.getName().startsWith("get") || method.getName().startsWith("is")) {
allGetterMethodsOfClassDemo.add(method);
}
}
答案 1 :(得分:3)
我从未使用它(或java.beans
中的任何内容),但java.beans.Introspector.getBeanInfo(Class)
可能正是您正在寻找的内容。