Java BeanUtils - Akses Properti Bersarang
Deskripsi
Anda dapat mengakses nilai properti bertingkat dari kacang dengan menggabungkan nama properti dari jalur akses dengan menggunakan "." pemisah.
Anda bisa mendapatkan dan mengatur nilai Nested properti dengan menggunakan metode di bawah ini:
PropertyUtils.getNestedProperty (Object, String)
PropertyUtils.setNestedProperty (Objek, String, Objek)
Parameter:
Object: Ini adalah kacang yang propertinya akan diperoleh atau dimodifikasi.
String: Ini adalah nama properti bertingkat yang akan diperoleh atau dimodifikasi.
Contoh
Dalam contoh ini, Anda akan melihat cara mendapatkan dan menyetel nilai properti bertingkat. Kami akan membuat tiga kelas; SubBean , AppLayer1Bean untuk kacang dan BeanUtilsDemo sebagai program utama untuk dijalankan.
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);
}
}
}
Sekarang kita akan membuat kelas lain bernama SubBean.java seperti yang ditunjukkan di bawah ini:
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;
}
}
Buat satu lagi kelas AppLayer1Bean.java bersama dengan kode di bawah ini:
public class AppLayer1Bean {
private SubBean subBean;
public void setSubBean(SubBean subBean) {
this.subBean = subBean;
}
public SubBean getSubBean(){
return this.subBean;
}
}
Keluaran
Mari kita lakukan langkah-langkah berikut untuk melihat cara kerja kode di atas:
Simpan kode pertama di atas sebagai BeanUtilsDemo.java .
Sekarang jalankan kode menggunakan opsi Run atau Ctrl + f11 dan output seperti di bawah ini akan ditampilkan.
Tanda Tangan Metode PropertyUtils
Metode berikut disediakan oleh kelas PropertyUtils , yang menerima kombinasi sembarang dari akses properti sederhana, terindeks dan dipetakan untuk mendapatkan dan menyetel nilai properti kacang yang ditentukan.
PropertyUtils.getProperty (Object, String)
PropertyUtils.setProperty (Objek, String, Objek)
Parameter:
Object: Ini adalah kacang yang propertinya akan diperoleh atau dimodifikasi.
String: Ini adalah nama properti terindeks dan / atau bertingkat yang akan diperoleh atau dimodifikasi.
Contoh
Program sederhana berikut menggambarkan penggunaan metode getProperty dan 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;
}
}
}
Jalankan kode seperti yang ditentukan dalam contoh di atas dan Anda akan mendapatkan output di bawah ini: