• 介绍一个好用的工具类库commons-beanutils


     

    commons-beanutils.jar可以到Apache官网的commons子项目下找到它,或者,在Struts2,Spring的下载包中也能看到它的影子。单独使用时,要多引进一个commons-logging.jar,这个包也是非常见的,可在有commons-beanutils.jar的地方找到它。

    好,我们来测试一下,怎么使用这个类库中的两个常用类及它的常用方法。首先,写一个POJO类,代码如下:

    package rong.propertyUtils;
    public class Entity {    
        private Integer id = 5;
        private String name = "rongxinhua";
        
        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 String haha(){
            return "Ha,Ha";
        }    
        public void sayHelle(String name){
            System.out.println(name + " say, Hello!");
        }  
        public String countAges(int x, int y){
            return "My Age is " + (x + y);
        }   
    }

    接着写一个测试的类,代码如下:

    package rong.propertyUtils;
    
    import java.util.Map;
    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, "haha", null) );
            
            //通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(1参的情况)
            MethodUtils.invokeMethod(entity, "sayHelle", "心梦帆影");
            
            //通过MethodUtils的invokeMethod方法,执行指定的entity中的方法(多参的情况)
            Object[] params = new Object[]{new Integer(10),new Integer(12)};
            String msg = (String)MethodUtils.invokeMethod(entity, "countAges", params);
            System.out.println(msg);
            
        }
    
    }

    执行结果如下:

    id = 5  name = rongxinhua
    name = 心梦帆影
    id = 5  name = 心梦帆影
    Ha,Ha
    心梦帆影 say, Hello!
    My Age is 22

     


    作者:Kei
    出处:http://www.cnblogs.com/ikei/
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

     
  • 相关阅读:
    标题:CSS-button添加display:block;属性后自动换行!
    JS-遍历对象
    JS-获取对象的长度大小
    HTML-span和div区别
    SQL-Foreach标签
    JS_Select_option切换自动触发事件
    JS_Select赋值的几种方式
    加密系统文件夹
    JS-返回上一页
    metronic 4.5.7开发环境下, 在Windows 10上安装了10.16.0版本的node js之后,导致node sass无法加载
  • 原文地址:https://www.cnblogs.com/ikei/p/7094495.html
Copyright © 2020-2023  润新知