`

PropertyUtils

 
阅读更多

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

分享到:
评论

相关推荐

    Bean复制的几种框架性能比较(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier

    这篇文章将对比分析Apache BeanUtils、PropertyUtils、Spring BeanUtils以及Cglib BeanCopier这四个常用的Bean复制工具的性能和特点。 首先,Apache BeanUtils是Apache Commons项目的一部分,提供了一系列便捷的...

    easymock-propertyutils-1.0.jar

    jar包,官方版本,自测可用

    easymock-propertyutils-1.1-sources.jar

    jar包,官方版本,自测可用

    easymock-propertyutils-1.0-sources.jar

    jar包,官方版本,自测可用

    easymock-propertyutils:未维护的 Java 测试实用程序

    标题中的“easymock-propertyutils”是一个针对Java测试的工具包,主要用于模拟对象和验证方法调用。这个工具提供了一种方式,使得在编写测试代码时,可以通过JavaBeans风格的属性来匹配和操作对象。然而,根据描述...

    BeanUtils详细解说

    1. `org.apache.commons.beanutils`:包含了BeanUtils的核心功能类,如`BeanUtils`、`PropertyUtils`等。 2. `org.apache.commons.beanutils.converters`:提供了数据类型转换器,用于将一种类型的值转换为另一种...

    lomok.docx

    本文将重点讨论 Lombok 的使用场景以及如何替代 BeanUtils 和 PropertyUtils 进行属性复制。 #### 二、BeanUtils.copyProperties 与 PropertyUtils.copyProperties 的用法及区别 在 Java 开发中,经常会遇到需要...

    commons-beanutils-1.7.0.jar.zip

    2. 使用`PropertyUtils`:创建一个JavaBean对象,然后调用`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法,分别用于读取和设置属性。例如,假设我们有一个名为`Person`的JavaBean,包含`name`...

    commons-beanutils-1.9.1解析javaBean方式

    4.1 PropertyUtils,当属性为Collection,Map时的动态读取 4.2 PropertyUtils,获取属性的Class类型 4.3 ConstructorUtils,动态创建对象 4.4 MethodUtils,动态调用方法 4.5 动态Bean 见用DynaBean减除不必要的VO...

    BeanUtils详细讲解.pdf

    PropertyUtils.getSimpleProperty(Object bean, String name)用于获取简单属性,而PropertyUtils.setSimpleProperty(Object bean, String name, Object value)用于设置简单属性。 - **Indexed-Collection**: 用于...

    BeanUtilsBean对象复制使用(类型可以自动转化)

    在Java开发中,Apache Commons BeanUtils库是一个非常实用的工具包,它提供了许多方便的方法来操作JavaBeans。本文将深入探讨`BeanUtilsBean`对象复制的功能,特别关注它如何实现类型自动转换。...

    JavaBean和beanutils工具类的学习

    `getProperty()`和`setProperty()`方法展示了如何通过反射和PropertyDescriptor类直接访问和修改属性,而BeanUtils和PropertyUtils的使用则更加简洁。 总之,JavaBean和BeanUtils工具类的结合使用极大地提高了代码...

    java-property-utils-1.9.jar

    Properties props = PropertyUtils.loadProperties("config.properties"); String dbUrl = PropertyUtils.getProperty(props, "database.url"); ``` 以上就是关于`java-property-utils-1.9.jar`库的一些核心功能和...

    有关动态bean的一些用法

    4. **PropertyUtils工具类**:Apache Commons BeanUtils提供的PropertyUtils是一个强大的工具类,它提供了便捷的方法来设置、获取和复制Bean的属性值。对于动态Bean,我们可以通过PropertyUtils.setProperty()方法来...

    beanutils的jar包

    `PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法允许你通过字符串形式的属性名来操作对象的属性,这样就不需要事先知道属性的确切名称。这在处理动态属性或者处理来自数据库或其他数据源的未知...

    commons-beanutils-1.8.0.zip

    你可以通过PropertyUtils.getProperty()来获取属性值,用PropertyUtils.setProperty()来设置属性值。它支持链式属性访问,例如"person.address.city",这在处理复杂对象结构时非常有用。 2. **Descriptor Support**...

    JAVA java工具类大全

    1:AES 加密解密 2:AuthUtils 授权相关的工具类 3:Base64 base64编码 ...23:PropertyUtils 属性工具类 24:QuerySqlUtil 25:RegexUtils 26:TestClass 28:UploadUtils 文件上传工具 29:UtilTest 30:VideoTool

    java 通用比较类

    在这个例子中,`PropertyUtils.getProperty()`方法来自Apache Commons BeanUtils库,用于获取对象的指定属性值。这个比较器可以接受任何具有`compareTo()`方法的对象,只要对应的属性是可比较的。 4. **使用通用...

    cors-filter-1.7.jar,java-property-utils-1.9.jar两个包供学习使用.rar

    return PropertyUtils.getString(PROPERTIES_FILE, key); } public static void setProperty(String key, String value) { PropertyUtils.setProperty(PROPERTIES_FILE, key, value); } } ``` 在标签中提到的...

Global site tag (gtag.js) - Google Analytics