Java BeanUtils - dostęp do zagnieżdżonych właściwości
Opis
Dostęp do wartości zagnieżdżonej właściwości komponentu bean można uzyskać, konkatenując nazwy właściwości ścieżki dostępu za pomocą „.” separatory.
Możesz pobrać i ustawić wartości Nested właściwość za pomocą poniższych metod:
PropertyUtils.getNestedProperty (Object, String)
PropertyUtils.setNestedProperty (Object, String, Object)
Parametry:
Object: Jest to fasola, której właściwość należy uzyskać lub zmodyfikować.
String: Jest to nazwa zagnieżdżonej właściwości, która ma zostać uzyskana lub zmodyfikowana.
Przykład
W tym przykładzie zobaczysz, jak pobrać i ustawić wartości zagnieżdżonej właściwości. Będziemy tworzyć trzy klasy; SubBean , AppLayer1Bean dla fasoli i BeanUtilsDemo jako główny program do uruchomienia.
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);
}
}
}
Teraz utworzymy kolejną klasę o nazwie SubBean.java, jak pokazano poniżej:
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;
}
}
Utwórz jeszcze jedną klasę AppLayer1Bean.java wraz z poniższym kodem:
public class AppLayer1Bean {
private SubBean subBean;
public void setSubBean(SubBean subBean) {
this.subBean = subBean;
}
public SubBean getSubBean(){
return this.subBean;
}
}
Wynik
Wykonajmy następujące kroki, aby zobaczyć, jak działa powyższy kod:
Zapisz powyższy pierwszy kod jako BeanUtilsDemo.java .
Teraz wykonaj kod za pomocą opcji Uruchom lub Ctrl + F11 i wyświetl jak poniżej.
Podpisy metod PropertyUtils
Klasa PropertyUtils zapewnia następujące metody , która akceptuje dowolne kombinacje prostego, indeksowanego i mapowanego dostępu do właściwości w celu pobrania i ustawienia wartości właściwości określonego komponentu bean.
PropertyUtils.getProperty (obiekt, ciąg)
PropertyUtils.setProperty (obiekt, ciąg, obiekt)
Parametry:
Object: Jest to fasola, której właściwość należy uzyskać lub zmodyfikować.
String: Jest to nazwa indeksowanej i / lub zagnieżdżonej właściwości, która ma zostać uzyskana lub zmodyfikowana.
Przykład
Poniższy prosty program ilustruje użycie metod getProperty i 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;
}
}
}
Uruchom kod zgodnie z powyższym przykładem, a otrzymasz poniższe dane wyjściowe: