zoukankan      html  css  js  c++  java
  • java中 BeanUtils.copyProperties的用法

            BeanUtils提供了对java发射和自省API的包装,这里对BeanUtils.copyProperties的用法做一个小小的介绍。

            通过函数名可以知道,copyProperties函数是对属性进行拷贝,该函数有两个参数,一个是原始的数据,另一个是接收这些属性的数据。这里给大家介绍一个我遇到的一个坑:在不同的jar包中,该函数的两个参数的位置不一样,有一种是copyProperties(java.lang.Object dest , java.lang.Object source);另外一种恰恰相反,copyProperties(java.lang.Object source , java.lang.Object dest),因此在实际使用的时候需要注意参数的位置。

            当两个对象之间的属性完全一样时,毫无疑问调用copyProperties时完全成功的,但是如果两个对象之间存在不同的属性时,会发生什么情况呢,BeanUtils则不对这些属性进行处理,需要程序员手动处理。

            除了BeanUtils以外,还有一个名为PropertyUtils的工具类,该类中也提供了copyProperties()方法,这个方法与前面说的方法相似,唯一不同点是PropertyUtils的工具类里面的copyProperties()方法提供类型转换功能,可以在支持的数据类型内进行数类型转换。由于增加了类型转换,因此速度会稍微慢一些。propertyUtils支持的转换类型如下:

    * java.lang.BigDecimal   
      
    * java.lang.BigInteger   
      
    * boolean and java.lang.Boolean   
      
    * byte and java.lang.Byte   
      
    * char and java.lang.Character   
      
    * java.lang.Class   
      
    * double and java.lang.Double   
      
    * float and java.lang.Float   
      
    * int and java.lang.Integer   
      
    * long and java.lang.Long   
      
    * short and java.lang.Short   
      
    * java.lang.String   
      
    * java.sql.Date   
      
    * java.sql.Time   
      
    * java.sql.Timestamp

    需要注意的是这里不支持java.util.Date,只支持java.sql.Date,因此在进行数据类型转换时需要注意这个问题。

    BeanUtils.copyProperties虽然很实用,但是其花费的时间比较长,超过手动调用get和set方法,如果对时间没有太大要求可以考虑用这个函数。

    本文参考自:https://www.cnblogs.com/HassanBlog/articles/3200239.html

  • 相关阅读:
    MinGW 介绍
    Android Gallery组件实现循环显示图像
    白话经典算法系列之六 高速排序 高速搞定
    background-position 使用方法具体介绍
    小程序:目录
    SLC-测试-Postman:Postman 工具
    云-腾讯云:视频解决方案-un
    云-腾讯云:实时音视频
    Tool:XMind
    小程序:微信公众平台:小程序
  • 原文地址:https://www.cnblogs.com/fpqi/p/9603769.html
Copyright © 2011-2022 走看看