Учебники

Java BeanUtils — базовый доступ к свойствам

Вы можете получить доступ к основным свойствам, используя следующие способы:

  • Простое свойство

  • Индексированное свойство

  • Сопоставленное свойство

Простое свойство

Индексированное свойство

Сопоставленное свойство

Простое свойство

Вы можете получить и установить значения простых свойств, используя следующие подписи API:

  • PropertyUtils.getSimpleProperty (Object, String)

  • PropertyUtils.SetSimpleProperty (Object, String, Object)

PropertyUtils.getSimpleProperty (Object, String)

PropertyUtils.SetSimpleProperty (Object, String, Object)

Параметры:

  • Объект : это объект EJB, который определяет извлекаемое свойство EJB.

  • String : это строковое имя, которое указывает имя извлекаемого свойства.

Объект : это объект EJB, который определяет извлекаемое свойство EJB.

String : это строковое имя, которое указывает имя извлекаемого свойства.

Индексированное свойство

Вы можете использовать две опции для создания индексированных свойств; Первый вариант — это создание индекса в имени свойства, а второй — определение индекса в отдельном аргументе для вызова метода.

Индексированные свойства можно получить и установить с помощью следующих методов:

  • PropertyUtils.getIndexedProperty (Object, String)

  • PropertyUtils.getIndexedProperty (Object, String, int)

  • PropertyUtils.setIndexedProperty (Object, String, Object)

  • PropertyUtils.setIndexedProperty (Object, String, int, Object)

PropertyUtils.getIndexedProperty (Object, String)

PropertyUtils.getIndexedProperty (Object, String, int)

PropertyUtils.setIndexedProperty (Object, String, Object)

PropertyUtils.setIndexedProperty (Object, String, int, Object)

Параметры:

  • Объект : это объект EJB, который определяет извлекаемое свойство EJB.

  • String : это строковое имя, которое указывает имя извлекаемого свойства.

  • int : Устанавливает индекс значения свойства.

  • Объект : он указывает значение для индексированного элемента свойства.

Объект : это объект EJB, который определяет извлекаемое свойство EJB.

String : это строковое имя, которое указывает имя извлекаемого свойства.

int : Устанавливает индекс значения свойства.

Объект : он указывает значение для индексированного элемента свойства.

Сопоставленное свойство

Вы можете получить и установить значения сопоставленных свойств, используя нижеуказанные сигнатуры API. Если у вас есть дополнительный аргумент, его можно записать в скобках как («(» и «)») вместо использования квадратных скобок.

  • PropertyUtils.getMappedProperty (Object, String)

  • PropertyUtils.getMappedProperty (Object, String, String)

  • PropertyUtils.setMappedProperty (Object, String, Object)

  • PropertyUtils.setMappedProperty (Object, String, String, Object)

PropertyUtils.getMappedProperty (Object, String)

PropertyUtils.getMappedProperty (Object, String, String)

PropertyUtils.setMappedProperty (Object, String, Object)

PropertyUtils.setMappedProperty (Object, String, String, Object)

Параметры:

  • Объект : это объект EJB, который определяет извлекаемое свойство EJB.

  • Строка : это имя значения свойства, которое должно быть установлено для свойства Mapped.

  • Строка : определяет ключ значения свойства, которое будет установлено.

  • Объект : определяет значение свойства, которое будет установлено.

Объект : это объект EJB, который определяет извлекаемое свойство EJB.

Строка : это имя значения свойства, которое должно быть установлено для свойства Mapped.

Строка : определяет ключ значения свойства, которое будет установлено.

Объект : определяет значение свойства, которое будет установлено.

пример

Приведенный ниже пример демонстрирует использование вышеуказанных свойств в 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);
   }
   }
}

Теперь мы создадим еще один класс с именем MyBean.java для класса bean:

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; }
	}

Выход

Давайте выполним следующие шаги, чтобы увидеть, как работает вышеуказанный код:

Сохраните приведенный выше первый код как BeanUtilsPropertyDemo.java .

Теперь выполните код, используя опцию Run или Ctrl + f11, и отобразится вывод, как показано ниже.