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

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

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

  • 相关阅读:
    base64编码
    URL编码和解码
    Android MineType
    Gzip压缩
    关于文件与文件系统的压缩与打包命令-Linux(笔记)
    tesseract的编译安装
    HDOJ How many ways?? 2157【矩阵高速幂】
    [ACM] POJ 3253 Fence Repair (Huffman树思想,优先队列)
    6.非关系型数据库(Nosql)之mongodb:集群(主从复制)
    androidproject有红色叹号的解决方式
  • 原文地址:https://www.cnblogs.com/tony-yang-flutter/p/3486560.html
Copyright © 2011-2022 走看看