• 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);
        }
    
    }

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

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

  • 相关阅读:
    字符编码
    mahout 使用
    cloudera Manager使用总结
    HDFS 操作命令总结
    基于hive的日志分析系统
    hive 中的正则表达式
    hadoop 用户
    Java中设置classpath、path、JAVA_HOME的作用
    排序
    动手动脑
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3486560.html
Copyright © 2020-2023  润新知