`

PropertyUtils,MethodUtils使用

 
阅读更多

1 PropertyUtils 

   1 )这个类可以对属性设值,与取出属性的值

   2 ) 可已经对象属性,完全拷贝到另一个Map中 

2 MethodUtils

  可以调用一些对象的方法

   测试方法:

import org.apache.commons.beanutils.MethodUtils;
import org.apache.commons.beanutils.PropertyUtils;

public class TestPropertyUtils {

public static void main(String[] args) throws Exception{
        
        Entity entity = new Entity();
        
        //通过PropertyUtils的getProperty方法获取指定属性的值
        Integer id = (Integer)PropertyUtils.getProperty(entity, "id");
        String name = (String)PropertyUtils.getProperty(entity, "name");
        System.out.println("id = " + id + "  name = " + name);
        
        //调用PropertyUtils的setProperty方法设置entity的指定属性
        PropertyUtils.setProperty(entity, "name", "猪八戒");
        System.out.println("name = " + entity.getName());
        
        //通过PropertyUtils的describe方法把entity的所有属性与属性值封装进Map中
        Map map = PropertyUtils.describe(entity);
        System.out.println("id = " + map.get("id") + "  name = " + map.get("name"));
        
        //通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(无参的情况)
        System.out.println( MethodUtils.invokeMethod(entity, "sayHello", null) );
        
        //通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(1参的情况)
        MethodUtils.invokeMethod(entity, "sayHello1", "心梦帆影");


        //通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(多参的情况)
//        Object[] params1 = new Object[]{new Integer(10),new Integer(12)};
//        String msg = (String)MethodUtils.invokeMethod(entity, "countAges", params1); 
//        System.out.println(msg);
        
        
        //通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(多参的情况)
//        Integer[] params ={1,2};
//        MethodUtils.invokeMethod(entity, "sayHello2", params);
    }
}

 

 测试实体类

package test2;

public class Entity {

	private Integer id;
	private String name;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	public void sayHello( ){
		System.out.println("执行了  sayHello == 0"  );
	}
	
	public void sayHello1(String word ){
		System.out.println("执行了  sayHello ==1 " +word );
	}
	
//	public String countAges(Object[] w){
//		System.out.println( "44444444");
//		return "44444444444";
//	}
//	
//	public void sayHello2( Integer[] w){
//		System.out.println("执行了  sayHello == 2"   );
//	}	
	
	
}

 

 

分享到:
评论

相关推荐

    commons-beanutils-1.9.1解析javaBean方式

    Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。...4.4 MethodUtils,动态调用方法 4.5 动态Bean 见用DynaBean减除不必要的VO和FormBean

    BeanUtils的应用

    ### PropertyUtils与MethodUtils - `PropertyUtils`扩展了`BeanUtils`,提供了更多的属性操作功能,如`setIndexedProperty()`和`getIndexedProperty()`用于操作数组或集合属性。 - `MethodUtils`则增加了对方法的...

    commons-beanutils-1.8.0

    通过`PropertyUtils.getProperty()`和`PropertyUtils.setProperty()`方法,可以实现对JavaBean属性的读写操作。 2. **类型转换**:BeanUtils具有自动类型转换的能力,它可以将字符串、数字等不同类型的值转换为...

    commons-beanutils-1.9.1.jar<---&gt;commons-logging-1.1.3.jar

    在给定的`commons-beanutils-1.9.1.jar`中,包含了大量的实用函数,如`PropertyUtils`、`MethodUtils`等,这些函数简化了JavaBeans的处理。 `commons-logging-1.1.3.jar`是另一个Apache项目,它是Java的日志抽象层...

    commons-beanutils-1.9.3

    1. **属性访问**:提供了`PropertyUtils`类,可以方便地通过属性名获取和设置JavaBean的属性,而无需关心具体的getter和setter方法。 2. **类型转换**:`ConvertUtils`类支持自动类型转换,避免了常见的类型转换异常...

    commons-beanutils-1.6.zip

    1. **BeanUtils**: 这是库的主要模块,提供了一系列静态方法,如`PropertyUtils`,用于无须实例化就能操作JavaBean的属性。例如,`getProperty()`和`setProperty()`方法分别用于获取和设置Bean的属性值,而`...

    apache commons 帮助文档电子书

    - ConstructorUtils、MethodUtils:提供了反射相关的构造方法和方法调用功能。 - DynaBean、DynaClass、DynaProperty:提供了动态创建和操作Bean的能力。 ***mons Collections库提供了对Java集合框架(java.util....

    JakartaCommons 详细教程更助于你的基础

    - ConstructorUtils和MethodUtils:提供使用反射构造对象和调用方法的工具。 - DynaBean:一个动态的Bean实现,可以处理未知属性。 4. Jakarta Commons数学和时间库 这些库提供了额外的数学和时间处理功能,包括...

    commons-beanutils-1.9.3.jar

    通过`PropertyUtils`类,我们可以轻松地读取或设置JavaBean的任何属性,无需手动编写getter和setter方法。例如,`getProperty()`和`setProperty()`方法分别用于获取和设置属性值。 2. **类型转换** 在处理不同类型...

    apache commons 文档

    - **PropertyUtils**:与BeanUtils类似,但提供了更多灵活的属性操作方法。 - **ConvertUtils**:用于类型转换,可以将一个对象转换成指定类型的另一个对象。 - **ConstructorUtils** 和 **MethodUtils**:用于操作...

    Jakarta+Commons中文介绍

    **StringEscapeUtils** 类提供了字符串转义和取消转义的功能,方便在不同场景下安全地使用字符串。 ##### SystemUtils **SystemUtils** 类提供了一些关于系统属性的信息,比如操作系统类型、JVM版本等。 ##### ...

    Apache commons jar包常用类讲解--Jakarta Commons 学习.pdf

    - **MethodUtils**:提供了调用方法的工具方法。 - **DynaBean/DynaClass/DynaProperty**:提供了动态Bean的支持。 - **BasiceDyanBean/BasicDynaClass**:基本的动态Bean实现。 - **WrapDynaBean/WrapDynaClass/...

Global site tag (gtag.js) - Google Analytics