📅  最后修改于: 2020-11-04 07:03:40             🧑  作者: Mango
您可以通过以下方式访问基本属性:
简单属性
指数财产
映射的属性
您可以使用以下API签名来获取和设置简单属性值:
PropertyUtils.getSimpleProperty(Object,String)
PropertyUtils.SetSimpleProperty(Object,String,Object)
参数:
Object :这是一个bean对象,它指定要提取的bean属性。
String :这是一个字符串名称,它指定要提取的属性的名称。
您可以使用两个选项来创建索引属性:第一个选项是将下标构建为属性名称,第二个选项是在单独的参数中定义下标以调用该方法。
可以使用以下方法获取和设置索引属性:
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 :它指定索引属性元素的值。
您可以使用以下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 :这是应为“映射的”属性设置的属性值的名称。
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);
}
}
}
现在,我们将为bean类再创建一个名为MyBean.java的类:
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 。
现在,使用“运行”选项或Ctrl + f11执行代码,并显示以下输出。