Java BeanUtils - Quyền truy cập thuộc tính lồng nhau
Sự miêu tả
Bạn có thể truy cập giá trị của thuộc tính lồng nhau của bean bằng cách nối tên thuộc tính của đường dẫn truy cập bằng cách sử dụng "." dải phân cách.
Bạn có thể lấy và đặt các giá trị của Nested bằng cách sử dụng các phương pháp dưới đây:
PropertyUtils.getNestedProperty (Đối tượng, Chuỗi)
PropertyUtils.setNestedProperty (Đối tượng, Chuỗi, Đối tượng)
Thông số:
Object: Nó là một hạt đậu có thuộc tính cần lấy hoặc sửa đổi.
String: Là tên của thuộc tính lồng nhau cần lấy hoặc sửa đổi.
Thí dụ
Trong ví dụ này, bạn sẽ thấy cách lấy và đặt các giá trị của thuộc tính lồng nhau. Chúng tôi sẽ tạo ba lớp; SubBean , AppLayer1Bean cho bean và BeanUtilsDemo như một chương trình chính để chạy.
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);
}
}
}
Bây giờ chúng ta sẽ tạo một lớp khác có tên là SubBean.java như hình dưới đây:
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;
}
}
Tạo thêm một lớp AppLayer1Bean.java cùng với mã dưới đây:
public class AppLayer1Bean {
private SubBean subBean;
public void setSubBean(SubBean subBean) {
this.subBean = subBean;
}
public SubBean getSubBean(){
return this.subBean;
}
}
Đầu ra
Hãy thực hiện các bước sau để xem mã trên hoạt động như thế nào:
Lưu mã đầu tiên ở trên với tên BeanUtilsDemo.java .
Bây giờ thực thi mã bằng cách sử dụng tùy chọn Run hoặc Ctrl + f11 và kết quả như bên dưới được hiển thị.
Chữ ký phương pháp PropertyUtils
Các phương thức sau được cung cấp bởi lớp PropertyUtils , lớp này chấp nhận bất kỳ sự kết hợp tùy ý nào của quyền truy cập thuộc tính đơn giản, được lập chỉ mục và được ánh xạ để lấy và đặt giá trị của thuộc tính của bean đã chỉ định.
PropertyUtils.getProperty (Đối tượng, Chuỗi)
PropertyUtils.setProperty (Đối tượng, Chuỗi, Đối tượng)
Thông số:
Object: Nó là một hạt đậu có thuộc tính cần lấy hoặc sửa đổi.
String: Nó là tên của thuộc tính được lập chỉ mục và / hoặc được lồng vào để lấy hoặc sửa đổi.
Thí dụ
Chương trình đơn giản sau minh họa việc sử dụng các phương thức getProperty và 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;
}
}
}
Chạy mã như được chỉ định trong ví dụ trên và bạn sẽ nhận được kết quả bên dưới: