Java BeanUtils - Verschachtelter Eigenschaftszugriff
Beschreibung
Sie können auf den Wert der verschachtelten Eigenschaft der Bean zugreifen, indem Sie die Eigenschaftsnamen des Zugriffspfads mit "." Verketten. Trennzeichen.
Sie können die Werte von abrufen und einstellen Nested Eigenschaft mit den folgenden Methoden:
PropertyUtils.getNestedProperty (Objekt, Zeichenfolge)
PropertyUtils.setNestedProperty (Objekt, Zeichenfolge, Objekt)
Parameter:
Object: Es ist eine Bohne, deren Eigenschaft erhalten oder geändert werden soll.
String: Dies ist ein Name der verschachtelten Eigenschaft, die abgerufen oder geändert werden soll.
Beispiel
In diesem Beispiel erfahren Sie, wie Sie die Werte verschachtelter Eigenschaften abrufen und festlegen. Wir werden drei Klassen erstellen; SubBean , AppLayer1Bean für Beans und BeanUtilsDemo als Hauptprogramm.
import org.apache.commons.beanutils.PropertyUtils;
public class BeanUtilsDemo {
public static void main(String args[]){
try{
// create the bean
AppLayer1Bean nested = new AppLayer1Bean();
// set a SubBean which is part of another bean
SubBean sb = new SubBean();
sb.setStringProperty("Hello World from SubBean");
nested.setSubBean(sb);
// accessing and setting nested properties
PropertyUtils.setNestedProperty(
nested, "subBean.stringProperty",
"Hello World from SubBean, set via Nested Property Access");
System.out.println(
PropertyUtils.getNestedProperty(nested, "subBean.stringProperty"));
}
catch(Exception e){
System.out.println(e);
}
}
}
Jetzt erstellen wir eine weitere Klasse namens SubBean.java, wie unten gezeigt:
public class SubBean {
private int intProperty;
private String stringProperty;
public void setIntProperty(int intProperty) {
this.intProperty = intProperty;
}
public int getIntProperty() {
return this.intProperty;
}
public void setStringProperty(String stringProperty) {
this.stringProperty = stringProperty;
}
public String getStringProperty() {
return this.stringProperty;
}
}
Erstellen Sie die weitere Klasse AppLayer1Bean.java zusammen mit dem folgenden Code:
public class AppLayer1Bean {
private SubBean subBean;
public void setSubBean(SubBean subBean) {
this.subBean = subBean;
}
public SubBean getSubBean(){
return this.subBean;
}
}
Ausgabe
Führen Sie die folgenden Schritte aus, um zu sehen, wie der obige Code funktioniert:
Speichern Sie den obigen ersten Code als BeanUtilsDemo.java .
Führen Sie nun den Code mit der Option Ausführen oder Strg + F11 aus und die Ausgabe wie unten wird angezeigt.
PropertyUtils-Methodensignaturen
Die folgenden Methoden werden von der PropertyUtils- Klasse bereitgestellt , die beliebige Kombinationen von einfachem, indiziertem und zugeordnetem Eigenschaftszugriff akzeptiert, um den Wert der Eigenschaft der angegebenen Bean abzurufen und festzulegen.
PropertyUtils.getProperty (Objekt, Zeichenfolge)
PropertyUtils.setProperty (Objekt, Zeichenfolge, Objekt)
Parameter:
Object: Es ist eine Bohne, deren Eigenschaft erhalten oder geändert werden soll.
String: Dies ist ein Name der indizierten und / oder verschachtelten Eigenschaft, die abgerufen oder geändert werden soll.
Beispiel
Das folgende einfache Programm veranschaulicht die Verwendung der Methoden getProperty und setProperty:
import org.apache.commons.beanutils.PropertyUtils;
public class PropertyUtilsTest {
public static void main(String args[]){
try{
Tv Color = new Tv();
PropertyUtils.setProperty(Color, "color", "Black");
String value = (String) PropertyUtils.getProperty(Color, "color");
System.out.println("The color value of Tv is: " + value);
}
catch(Exception ex){
ex.printStackTrace();
}
}
public static class Tv{
private String color;
public String getColor(){
return color;
}
public void setColor(String color){
this.color = color;
}
}
}
Führen Sie den Code wie im obigen Beispiel angegeben aus, und Sie erhalten die folgende Ausgabe: