Java BeanUtils - Yuvalanmış Mülk Erişimi
Açıklama
"" Kullanarak erişim yolunun özellik adlarını birleştirerek çekirdeğin iç içe geçmiş özelliğinin değerine erişebilirsiniz. ayırıcılar.
Değerlerini alabilir ve ayarlayabilirsiniz. Nested aşağıdaki yöntemleri kullanarak mülk:
PropertyUtils.getNestedProperty (Nesne, Dize)
PropertyUtils.setNestedProperty (Nesne, Dize, Nesne)
Parametreler:
Object: Mülkiyeti alınacak veya değiştirilecek fasulyedir.
String: Elde edilecek veya değiştirilecek iç içe geçmiş özelliğin adıdır.
Misal
Bu örnekte, yuvalanmış mülkün değerlerini nasıl alacağınızı ve ayarlayacağınızı göreceksiniz. Üç sınıf oluşturacağız; SubBean , AppLayer1Bean for fasulyeleri ve BeanUtilsDemo'yu çalıştırmak için ana program olarak.
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);
}
}
}
Şimdi aşağıda gösterildiği gibi SubBean.java adlı başka bir sınıf oluşturacağız :
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;
}
}
Aşağıdaki kodla birlikte bir sınıf daha AppLayer1Bean.java oluşturun :
public class AppLayer1Bean {
private SubBean subBean;
public void setSubBean(SubBean subBean) {
this.subBean = subBean;
}
public SubBean getSubBean(){
return this.subBean;
}
}
Çıktı
Yukarıdaki kodun nasıl çalıştığını görmek için aşağıdaki adımları uygulayalım:
Yukarıdaki ilk kodu BeanUtilsDemo.java olarak kaydedin .
Şimdi kodu Çalıştır seçeneğini veya Ctrl + f11 kullanarak yürütün ve aşağıdaki gibi çıktı alın.
PropertyUtils Yöntem İmzalar
Aşağıdaki yöntemler , belirtilen çekirdeğin özelliğinin değerini almak ve ayarlamak için basit, dizinlenmiş ve eşlenmiş özellik erişiminin herhangi bir rastgele kombinasyonunu kabul eden PropertyUtils sınıfı tarafından sağlanır .
PropertyUtils.getProperty (Nesne, Dize)
PropertyUtils.setProperty (Nesne, Dize, Nesne)
Parametreler:
Object: Mülkiyeti alınacak veya değiştirilecek fasulyedir.
String: Elde edilecek veya değiştirilecek dizine alınmış ve / veya iç içe yerleştirilmiş özelliğin adıdır.
Misal
Aşağıdaki basit program getProperty ve setProperty yöntemlerinin kullanımını gösterir:
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;
}
}
}
Kodu yukarıdaki örnekte belirtildiği gibi çalıştırın ve aşağıdaki çıktıyı elde edersiniz: