Wie die Namen der Eigenschaften eines pojo Klasse ohne Öffentlichkeit nicht argument Konstruktor zu bekommen?

StackOverflow https://stackoverflow.com/questions/4447682

Frage

Ich mag ein Array bekommen (oder Liste) einen Eigenschaftsnamen des POJO. Ich habe versucht, commons-beanutil des BeanUtils.describe(obj), aber es braucht eine Objektinstanz. Aber was, wenn ich nur die Klasse, ohne öffentlichen kein argument Konstruktor. Ich kann nicht clazz.newInstance() verwenden, um ein Objekt zu erzeugen.

Wie soll ich es lösen? Gibt es keine Bibliotheken, die in eine Klasse graben und Eigenschaftsnamen passieren?

(Ich weiß, ich Reflektion verwenden kann, um manuell die Klassenstruktur zu analysieren, aber ich bin auf der Suche für eine handliche Bibliothek)

Danke.

War es hilfreich?

Lösung

Ich habe es nie benutzt (oder irgendetwas in java.beans, was das betrifft), aber java.beans.Introspector.getBeanInfo(Class) kann sein, was Sie suchen.

Andere Tipps

Java hat seine Build in Reflexion utils - die Sie verwenden können. Hava ein Blick auf die java doc der Klasse .

Zum Beispiel reflectionDemo.class.getMethods(); mit all Getter-Methoden einer Klasse erhalten genannt Demo (ohne es zu Instanziierung.)

List<Method> allGetterMethodsOfClassDemo() = new ArrayList<Method>();
for(Method method : Demo.class.getMethods()){
  if(method.getName().startsWith("get") || method.getName().startsWith("is")) {
    allGetterMethodsOfClassDemo.add(method);
  }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top