Java BeanUtils - Hintergrund

Beschreibung

Die Standardsprache JavaBeans of Java kann verwendet werden, um mit den richtigen Getter-Methoden auf die Eigenschaftswerte von Beans zuzugreifen. Die Java-Sprache stellt die Klasse java.beans.Introspector bereit , um eine Java-Klasse zur Laufzeit zu überprüfen. Dies gibt die Eigenschaftsnamen von Getter- und Setter- Methoden zusammen mit den Reflection- Fähigkeiten an, um solche Methoden dynamisch aufzurufen. Sie können das Abrufen und Festlegen von Bean-Eigenschaften dynamisch verwenden, indem Sie die APIs im BeanUtils-Paket verwenden.

Die JavaBean-Eigenschaftstypen sind in drei Typen unterteilt (einige Eigenschaftstypen werden von der JavaBeans-Spezifikation und andere vom BeanUtils-Paket unterstützt):

  • Simple: Die einfachen Eigenschaften enthalten einen einzelnen Wert, der abgerufen oder geändert werden kann. Sie können einen Eigenschaftstyp wie ein Java-Sprachprimitiv wie int, ein einfaches Objekt wie java.lang.String oder ein komplexes Objekt verwenden, das entweder mithilfe der Java-Sprache, einer Anwendung oder einer Klassenbibliothek mit der Anwendung angegeben wird.

  • Indexed: Eine geordnete Sammlung von Objekten kann in der indizierten Eigenschaft gespeichert werden, auf die einzeln zugegriffen werden kann, indem ein ganzzahliger, nicht negativer Index oder Index verwendet wird. Das BeanUtils- Paket enthält den Datentyp java.util.List muss in der JavaBeans-Spezifikation indiziert sein.

  • Mapped: Das BeanUtils- Paket enthält den Datentyp java.util.Map, der in den Standard-JavaBeans-APIs zugeordnet werden sollte. Die einzelnen Werte können mithilfe eines Schlüssels mit String-Wert festgelegt und aufgerufen werden.

Sie können die Eigenschaftswerte für die Datentypen mithilfe der in der PropertyUtils- Klasse angegebenen API-Methoden abrufen und festlegen . Betrachten Sie das folgende Codefragment von zwei Bean-Klassen, die mit Getter- und Setter- Methoden definiert wurden:

public class Employee {
   public FullName getFullName();
   public void setFullName(String type, FullName fullname);
   public Employee getSubordinate(int index);
   public void setSubordinate(int index, Employee subordinate);
   public String getFirstName();
   public void setFirstName(String first_name);
   public String getLastName();
   public void setLastName(String last_name);
}