zoukankan      html  css  js  c++  java
  • Java设置以及获取JavaBean私有属性进阶

    在上一篇博客中讲到使用Java提供的原生API设置以及获取一个JavaBean的私有属性。

    但是使用Java的原生API过于复杂,有没有更加简单的方法呢?答案是肯定的。下面介绍一个开元工具包来非常方便的解决这个问题。

    准备条件:apache的开源库commons-beanutils.jar,commons-logging.jar。将这两个包导入项目中。

    主要用到两个类:(两种快速解决上述问题的方法)

    1.BeanUtils

    2.PropertyUtils

    第一种方案:

    package yw.bean.improve;
    
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.PropertyUtils;
    
    import yw.javaben.BeanEntity;
    
    /**
     * 获取javabean的私有属性提高篇
     * @author yw-tony
     *
     */
    public class BeanImproveTest {
        
        public static void main(String[] args) throws Exception{
            BeanEntity bean = new BeanEntity();
            /**
             * apache的一个开源工具包提供的操作javabean属性的工具类
             * 提供一个设置JavaBean私有属性的一个方法(共有属性当然也是可以获取到的)
             * 第一个参数:目标JavaBean
             * 第二个参数:属性名称
             * 第三个参数:要设置的属性值
             */
            BeanUtils.setProperty(bean, "x", "89");
            /**
             * 获取设置的属性值
             * 
             * 第一个参数:目标JavaBean
             * 第二个参数:目标属性名称
             */
            String propName = BeanUtils.getProperty(bean, "x");
            //打印输出
            System.out.println(propName);
            
        }
    }

    第二种方案:

    package yw.bean.improve;
    
    import org.apache.commons.beanutils.PropertyUtils;
    
    import yw.javaben.BeanEntity;
    
    public class BeanImproveTest2 {
        public static void main(String[] args) throws Exception {
            BeanEntity bean = new BeanEntity();
            /**
             * 设置目标JavaBean属性值的方法
             * 第一个参数:目标JavaBean
             * 第二个参数:目标属性名称
             * 第三个参数:设置目标属性值
             */
            PropertyUtils.setProperty(bean, "x", 100);
            /**
             * 获取目标属性值的方法
             * 第一个参数:目标JavaBean
             * 第二个参数:目标JavaBean的属性名称
             */
            int x = (int)PropertyUtils.getProperty(bean, "x");
            System.out.println(x);
        }
    
    }

    使用上述两种方法都可以得到上一篇博客想要的结果。

    怎么样?是不是更简单,更方便!

  • 相关阅读:
    一个贼基础的 编码解码方式
    SQL 中循环、for循环、游标
    sql中判断是否存在 数据库、表、存储过程、函数
    sql 同步表或同步表的时候更改部分字段
    sql存储过程的建立
    POJ
    UCloud 的安全秘钥 (计蒜客初赛第五场)(待解决)
    UCloud 机房的网络搭建(计蒜客初赛第五场)
    2017 计蒜之道 初赛 第四场
    腾讯课堂的物理实验(2017计蒜客初赛第三场)
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3486560.html
Copyright © 2011-2022 走看看