Java BeanUtils - Quyền truy cập thuộc tính cơ bản

Sự miêu tả

Bạn có thể truy cập các thuộc tính cơ bản bằng cách sử dụng các cách sau:

  • Thuộc tính đơn giản

  • Thuộc tính được lập chỉ mục

  • Thuộc tính được ánh xạ

Thuộc tính đơn giản

Bạn có thể lấy và đặt simple giá trị thuộc tính bằng cách sử dụng các chữ ký API bên dưới:

  • PropertyUtils.getSimpleProperty (Đối tượng, Chuỗi)

  • PropertyUtils.SetSimpleProperty (Đối tượng, Chuỗi, Đối tượng)

Thông số:

  • Object: Nó là một đối tượng bean chỉ định thuộc tính bean sẽ được trích xuất.

  • String: Nó là một tên chuỗi chỉ định tên của thuộc tính sẽ được trích xuất.

Thuộc tính được lập chỉ mục

Bạn có thể sử dụng hai tùy chọn để tạo indexedtính chất; tùy chọn đầu tiên là xây dựng chỉ số con thành tên thuộc tính và tùy chọn thứ hai là xác định chỉ số con trong một đối số riêng biệt để gọi phương thức.

Các thuộc tính được lập chỉ mục có thể được lấy và thiết lập bằng cách sử dụng các phương pháp dưới đây:

  • PropertyUtils.getIndexedProperty (Đối tượng, Chuỗi)

  • PropertyUtils.getIndexedProperty (Đối tượng, Chuỗi, int)

  • PropertyUtils.setIndexedProperty (Đối tượng, Chuỗi, Đối tượng)

  • PropertyUtils.setIndexedProperty (Đối tượng, Chuỗi, int, Đối tượng)

Thông số:

  • Object: Nó là một đối tượng bean chỉ định thuộc tính bean sẽ được trích xuất.

  • String: Nó là một tên chuỗi chỉ định tên của thuộc tính sẽ được trích xuất.

  • int: Nó thiết lập một chỉ mục của giá trị thuộc tính.

  • Object: Nó chỉ định giá trị cho một phần tử thuộc tính được lập chỉ mục.

Thuộc tính được ánh xạ

Bạn có thể lấy và đặt mappedgiá trị thuộc tính bằng cách sử dụng các chữ ký API bên dưới. Nếu bạn có thêm bất kỳ đối số nào, thì nó có thể được viết trong dấu ngoặc đơn là ("(" và ")") thay vì sử dụng dấu ngoặc vuông.

  • PropertyUtils.getMappedProperty (Đối tượng, Chuỗi)

  • PropertyUtils.getMappedProperty (Đối tượng, Chuỗi, Chuỗi)

  • PropertyUtils.setMappedProperty (Đối tượng, Chuỗi, Đối tượng)

  • PropertyUtils.setMappedProperty (Đối tượng, Chuỗi, Chuỗi, Đối tượng)

Thông số:

  • Object: Nó là một đối tượng bean chỉ định thuộc tính bean sẽ được trích xuất.

  • String: Đây là tên của giá trị thuộc tính cần được đặt cho thuộc tính được Ánh xạ.

  • String: Nó xác định khóa của giá trị thuộc tính sẽ được đặt.

  • Object: Nó chỉ định giá trị của thuộc tính sẽ được đặt.

Thí dụ

Ví dụ dưới đây minh họa việc sử dụng các thuộc tính trên trong beanUtils:

import org.apache.commons.beanutils.PropertyUtils;
import java.util.ArrayList;
import java.util.List;

public class BeanUtilsPropertyDemo{
   public static void main(String args[]){

   try{
      // Creating the bean and allows to access getter and setter properties
      MyBean myBean = new MyBean();

      // Setting the properties on the myBean
      PropertyUtils.setSimpleProperty(myBean, "stringProp", "Hello!This is a string");
      PropertyUtils.setSimpleProperty(myBean, "floatProp", new Float(25.20));

      // Getting the simple properties
      System.out.println("String Property: " + PropertyUtils.getSimpleProperty(myBean, "stringProp"));

      System.out.println("Float Property: " + PropertyUtils.getSimpleProperty(myBean, "floatProp"));

      // Here we will create a list for the indexed property
      List
      
        list = new ArrayList
       
        (); list.add("String value 0"); list.add("String value 1"); myBean.setListProp(list); // get and set this indexed property PropertyUtils.setIndexedProperty(myBean, "listProp[1]", "This is new string value 1"); System.out.println("List Property[1]: " + PropertyUtils.getIndexedProperty(myBean, "listProp[1]")); }catch(Exception e){ System.out.println(e); } } } 
       
      

Now we will create one more class called MyBean.java for the bean class:

import java.util.ArrayList;
import java.util.List;

public class MyBean {
   private String stringProp;
   private float floatProp;

   //indexed property
   @SuppressWarnings("rawtypes")
   private List listProp = new ArrayList();

   public void setStringProp(String stringProp) { this.stringProp = stringProp; }
   public String getStringProp() { return this.stringProp; }

   public void setFloatProp(float floatProp) { this.floatProp = floatProp; }
   public float getFloatProp() { return this.floatProp; }

   public void setListProp(List<?> listProp) { this.listProp = listProp; }
   public List<?> getListProp() { return this.listProp; }
	}

Output

Let's carry out the following steps to see how above code works:

  • Save the above first code as BeanUtilsPropertyDemo.java.

  • Now execute the code using Run option or Ctrl+f11 and output as below gets displayed.