Как получить имена свойств класса pojo без открытого конструктора no-arg? - PullRequest
2 голосов
/ 15 декабря 2010

Я хочу получить массив (или список) имен свойств POJO. Я пробовал BeanUtils.describe(obj) commons-beanutil, но ему нужен экземпляр объекта. Но что, если у меня есть только этот класс, без общедоступного конструктора без аргументов? Я не могу использовать clazz.newInstance() для создания объекта.

Как мне это решить? Есть ли библиотеки, которые могут копаться в классе и передавать имена свойств?

(я знаю, что могу использовать отражение для анализа структуры класса вручную, но я ищу удобную библиотеку)

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 декабря 2010

Java имеет встроенную утилиту отражения, которую вы можете использовать.Посмотрите на java-документ класса .

Например, используя отражение Demo.class.getMethods();, чтобы получить все методы-получатели класса с именем 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);
  }
}
3 голосов
/ 15 декабря 2010

Я никогда не использовал его (или что-то в java.beans, в этом отношении), но java.beans.Introspector.getBeanInfo(Class) может быть тем, что вы ищете.

...