1、定义一个二个bean类
(1) 第一个
package com.sunrex.demo02;
import java.util.List;
public class Address {
private String email;
private List<String> telephone;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public List<String> getTelephone() {
return telephone;
}
public void setTelephone(List<String> telephone) {
this.telephone = telephone;
}
}
(2)第二个
package com.sunrex.demo02;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Person {
private String username;
private int age;
private float stature;//身高
private boolean sex;//性别
@SuppressWarnings("unchecked")
private List list = new ArrayList();
private String[] friendsNames;
private Map<String, String> maps = new HashMap<String, String>();
private Address address;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public float getStature() {
return stature;
}
public void setStature(float stature) {
this.stature = stature;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
@SuppressWarnings("unchecked")
public List getList() {
return list;
}
@SuppressWarnings("unchecked")
public void setList(List list) {
this.list = list;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Map<String, String> getMaps() {
return maps;
}
public void setMaps(Map<String, String> maps) {
this.maps = maps;
}
public String[] getFriendsNames() {
return friendsNames;
}
public void setFriendsNames(String[] friendsNames) {
this.friendsNames = friendsNames;
}
}
3、测试类
package com.sunrex.demo02;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.beanutils.PropertyUtils;
public class PersonTest {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Person person = new Person();
try {
//simple property
PropertyUtils.setSimpleProperty(person, "username", "李四");
PropertyUtils.setSimpleProperty(person, "age", 22);
PropertyUtils.setSimpleProperty(person, "stature", 173.5f);
PropertyUtils.setSimpleProperty(person, "sex", new Boolean(false));
//index property
//List
List list = new ArrayList();
list.add("list value 0");
list.add("list value 1");
String listValue2 = "new list value 1";
PropertyUtils.setSimpleProperty(person, "list", list);
//将list设置到person之后,可以对里面的值进行修改
PropertyUtils.setIndexedProperty(person, "list[1]", listValue2);
//数组
String[] str = {"张三", "王五", "赵钱"};
person.setFriendsNames(str);
PropertyUtils.setIndexedProperty(person, "friendsNames[2]", "new赵钱");
//Map
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "vlaue1");
map.put("key2", "vlaue2");
map.put("key3", "vlaue3");
person.setMaps(map);
PropertyUtils.setMappedProperty(person, "maps", "key1", "new value1");
PropertyUtils.setMappedProperty(person, "maps(key2)", "maps(key2) value");
//nest property
Address address = new Address();
address.setEmail("jhlishero@163.com");
List<String> telephoneList = new ArrayList<String>();
telephoneList.add("12345678911");
telephoneList.add("92345678911");
address.setTelephone(telephoneList);
person.setAddress(address);
PropertyUtils.setNestedProperty(person, "address.telephone[1]", "nest 11111111");
PropertyUtils.setNestedProperty(person, "address.email", "new_jhlishero@163.com");
System.out.println(PropertyUtils.getSimpleProperty(person, "username"));
System.out.println(PropertyUtils.getSimpleProperty(person, "age"));
System.out.println(PropertyUtils.getSimpleProperty(person, "stature"));
System.out.println(PropertyUtils.getSimpleProperty(person, "sex"));
System.out.println(PropertyUtils.getSimpleProperty(person, "list"));
//list
System.err.println(PropertyUtils.getIndexedProperty(person, "list[0]"));
System.err.println(PropertyUtils.getIndexedProperty(person, "list", 1));
//数组
System.out.println(PropertyUtils.getIndexedProperty(person, "friendsNames[0]"));
System.out.println(PropertyUtils.getIndexedProperty(person, "friendsNames", 1));
System.out.println(PropertyUtils.getIndexedProperty(person, "friendsNames[2]"));
//Map
System.err.println(PropertyUtils.getMappedProperty(person, "maps(key1)"));
System.err.println(PropertyUtils.getMappedProperty(person, "maps", "key2"));
System.err.println(PropertyUtils.getMappedProperty(person, "maps(key3)"));
//nest--嵌套输出
System.out.println(PropertyUtils.getNestedProperty(person, "address.email"));
System.out.println(PropertyUtils.getNestedProperty(person, "address.telephone[0]"));
System.out.println(PropertyUtils.getNestedProperty(person, "address.telephone[1]"));
//也可以使用如下方法获取值
System.out.println(PropertyUtils.getProperty(person, "address.telephone[1]"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4、输出结果
李四
22
173.5
false
[list value 0, new list value 1]
list value 0
new list value 1
张三
王五
new赵钱
new value1
new_jhlishero@163.com
12345678911
nest 11111111
nest 11111111
maps(key2) value
vlaue3
分享到:
相关推荐
这篇文章将对比分析Apache BeanUtils、PropertyUtils、Spring BeanUtils以及Cglib BeanCopier这四个常用的Bean复制工具的性能和特点。 首先,Apache BeanUtils是Apache Commons项目的一部分,提供了一系列便捷的...
jar包,官方版本,自测可用
jar包,官方版本,自测可用
jar包,官方版本,自测可用
标题中的“easymock-propertyutils”是一个针对Java测试的工具包,主要用于模拟对象和验证方法调用。这个工具提供了一种方式,使得在编写测试代码时,可以通过JavaBeans风格的属性来匹配和操作对象。然而,根据描述...
1. `org.apache.commons.beanutils`:包含了BeanUtils的核心功能类,如`BeanUtils`、`PropertyUtils`等。 2. `org.apache.commons.beanutils.converters`:提供了数据类型转换器,用于将一种类型的值转换为另一种...
本文将重点讨论 Lombok 的使用场景以及如何替代 BeanUtils 和 PropertyUtils 进行属性复制。 #### 二、BeanUtils.copyProperties 与 PropertyUtils.copyProperties 的用法及区别 在 Java 开发中,经常会遇到需要...
2. 使用`PropertyUtils`:创建一个JavaBean对象,然后调用`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法,分别用于读取和设置属性。例如,假设我们有一个名为`Person`的JavaBean,包含`name`...
4.1 PropertyUtils,当属性为Collection,Map时的动态读取 4.2 PropertyUtils,获取属性的Class类型 4.3 ConstructorUtils,动态创建对象 4.4 MethodUtils,动态调用方法 4.5 动态Bean 见用DynaBean减除不必要的VO...
PropertyUtils.getSimpleProperty(Object bean, String name)用于获取简单属性,而PropertyUtils.setSimpleProperty(Object bean, String name, Object value)用于设置简单属性。 - **Indexed-Collection**: 用于...
在Java开发中,Apache Commons BeanUtils库是一个非常实用的工具包,它提供了许多方便的方法来操作JavaBeans。本文将深入探讨`BeanUtilsBean`对象复制的功能,特别关注它如何实现类型自动转换。...
`getProperty()`和`setProperty()`方法展示了如何通过反射和PropertyDescriptor类直接访问和修改属性,而BeanUtils和PropertyUtils的使用则更加简洁。 总之,JavaBean和BeanUtils工具类的结合使用极大地提高了代码...
Properties props = PropertyUtils.loadProperties("config.properties"); String dbUrl = PropertyUtils.getProperty(props, "database.url"); ``` 以上就是关于`java-property-utils-1.9.jar`库的一些核心功能和...
4. **PropertyUtils工具类**:Apache Commons BeanUtils提供的PropertyUtils是一个强大的工具类,它提供了便捷的方法来设置、获取和复制Bean的属性值。对于动态Bean,我们可以通过PropertyUtils.setProperty()方法来...
`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法允许你通过字符串形式的属性名来操作对象的属性,这样就不需要事先知道属性的确切名称。这在处理动态属性或者处理来自数据库或其他数据源的未知...
你可以通过PropertyUtils.getProperty()来获取属性值,用PropertyUtils.setProperty()来设置属性值。它支持链式属性访问,例如"person.address.city",这在处理复杂对象结构时非常有用。 2. **Descriptor Support**...
1:AES 加密解密 2:AuthUtils 授权相关的工具类 3:Base64 base64编码 ...23:PropertyUtils 属性工具类 24:QuerySqlUtil 25:RegexUtils 26:TestClass 28:UploadUtils 文件上传工具 29:UtilTest 30:VideoTool
在这个例子中,`PropertyUtils.getProperty()`方法来自Apache Commons BeanUtils库,用于获取对象的指定属性值。这个比较器可以接受任何具有`compareTo()`方法的对象,只要对应的属性是可比较的。 4. **使用通用...
return PropertyUtils.getString(PROPERTIES_FILE, key); } public static void setProperty(String key, String value) { PropertyUtils.setProperty(PROPERTIES_FILE, key, value); } } ``` 在标签中提到的...