Java BeanUtils-기본 속성 액세스
기술
다음 방법을 사용하여 기본 속성에 액세스 할 수 있습니다.
단순 속성
인덱싱 된 속성
매핑 된 속성
단순 속성
당신은 얻을 수 있고 설정할 수 있습니다 simple 아래 API 서명을 사용하여 속성 값 :
PropertyUtils.getSimpleProperty (Object, String)
PropertyUtils.SetSimpleProperty (Object, String, Object)
매개 변수 :
Object: 추출 할 Bean 속성을 지정하는 Bean 객체입니다.
String: 추출 할 속성의 이름을 지정하는 문자열 이름입니다.
인덱싱 된 속성
두 가지 옵션을 사용하여 indexed속성; 첫 번째 옵션은 아래 첨자를 속성 이름으로 작성하는 것이고 두 번째 옵션은 메서드를 호출하기 위해 별도의 인수에 아래 첨자를 정의하는 것입니다.
인덱싱 된 속성은 아래 방법을 사용하여 가져오고 설정할 수 있습니다.
PropertyUtils.getIndexedProperty (Object, String)
PropertyUtils.getIndexedProperty (Object, String, int)
PropertyUtils.setIndexedProperty (Object, String, Object)
PropertyUtils.setIndexedProperty (Object, String, int, Object)
매개 변수 :
Object: 추출 할 Bean 속성을 지정하는 Bean 객체입니다.
String: 추출 할 속성의 이름을 지정하는 문자열 이름입니다.
int: 속성 값의 인덱스를 설정합니다.
Object: 인덱싱 된 속성 요소의 값을 지정합니다.
매핑 된 속성
당신은 얻을 수 있고 설정할 수 있습니다 mapped아래 API 서명을 사용하여 속성 값. 추가 인수가있는 경우 대괄호를 사용하는 대신 괄호 안에 ( "("및 ")")로 쓸 수 있습니다.
PropertyUtils.getMappedProperty (Object, String)
PropertyUtils.getMappedProperty (Object, String, String)
PropertyUtils.setMappedProperty (Object, String, Object)
PropertyUtils.setMappedProperty (Object, String, String, Object)
매개 변수 :
Object: 추출 할 Bean 속성을 지정하는 Bean 객체입니다.
String: Mapped 속성에 대해 설정해야하는 속성 값의 이름입니다.
String: 설정할 속성 값의 키를 정의합니다.
Object: 설정할 속성의 값을 지정합니다.
예
아래 예제는 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.