最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Spring BeanUtils的copyProperties方法使用及注意事項(xiàng)

 更新時(shí)間:2021年06月16日 09:00:47   作者:小布1994  
這篇文章主要介紹了基于Spring BeanUtils的copyProperties方法使用及注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

如下所示:

package com.demo;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.util.Arrays;
import java.util.List;
/**
 * @author xiaobu
 * @version JDK1.8.0_171
 * @date on  2019/10/8 10:04
 * @description
 */
public class BeanUtilsTest {
    @Data
    private static class CopyTest1 {
        private String outerName;
        private CopyTest1.InnerClass innerClass;
        private List clazz;
        @Data
        private static class InnerClass {
            public String innerName;
        }
    }
    @Data
    private static class CopyTest2 {
        private String outerName;
        private CopyTest2.InnerClass innerClass;
        private List clazz;
        @Data
        static class InnerClass {
            private String innerName;
        }
    }
    public static void main(String[] args) {
        CopyTest1 copyTest1 = new CopyTest1();
        copyTest1.outerName = "outer xiaobu";
        CopyTest1.InnerClass innerClass = new CopyTest1.InnerClass();
        innerClass.innerName = "inner xiaobu";
        copyTest1.innerClass = innerClass;
        copyTest1.clazz = Arrays.asList(1, 2, 3);
        System.out.println("copyTest1 = " + copyTest1);
        CopyTest2 copyTest2 = new CopyTest2();
        //未copy內(nèi)部類(lèi)的屬性
        BeanUtils.copyProperties(copyTest1, copyTest2);
        System.out.println("copy內(nèi)部類(lèi)的屬性前copyTest2 = " + copyTest2);
        CopyTest2.InnerClass innerClass2 = new CopyTest2.InnerClass();
        copyTest2.innerClass = innerClass2;
        BeanUtils.copyProperties(innerClass, innerClass2);
        System.out.println("copy內(nèi)部類(lèi)的屬性后copyTest2 = " + copyTest2);
    }
}

總結(jié)

1、Spring的BeanUtils的CopyProperties方法需要對(duì)應(yīng)的屬性有g(shù)etter和setter方法;

2、如果存在屬性完全相同的內(nèi)部類(lèi),但是不是同一個(gè)內(nèi)部類(lèi),即分別屬于各自的內(nèi)部類(lèi),則spring會(huì)認(rèn)為屬性不同,不會(huì)copy;

3、泛型只在編譯期起作用,不能依靠泛型來(lái)做運(yùn)行期的限制;

4、最后,spring和apache的copy屬性的方法源和目的參數(shù)的位置正好相反,所以導(dǎo)包和調(diào)用的時(shí)候都要注意一下。

泛型只在編譯期起作用,不能依靠泛型來(lái)做運(yùn)行期的限制

package com.demo;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
/**
 * @author xiaobu
 * @version JDK1.8.0_171
 * @date on  2019/10/8 14:54
 * @description
 */
public class Demo {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        ArrayList<Integer> list = new ArrayList<Integer>();
        list.add(111);
        list.add(222);
        list.add("xiaobu");  //編譯器報(bào)錯(cuò)
        Class clazz3 = Class.forName("java.util.ArrayList");//獲取ArrayList的字節(jié)碼文件
        Method m = clazz3.getMethod("add", Object.class);//獲取add() 方法,Object.class 代表任意對(duì)象類(lèi)型的數(shù)據(jù)
        m.invoke(list,"xiaobu");//通過(guò)反射添加字符串類(lèi)型元素?cái)?shù)據(jù)
        System.out.println(list);//運(yùn)行結(jié)果:[111, 222, xiaobu]
    }
}

BeanUtils.copyProperties 出錯(cuò)

注意:屬性復(fù)制,不同jar中的方法,用法不一樣!

Spring 包(org.springframework.beans)中

BeanUtils.copyProperties(A,B);

是A中的值賦值給B

Apache 包(org.apache.commons.beanutils)中(常用)

BeanUtils.copyProperties(A,B);

是B中的值賦值給A

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java基于二分搜索樹(shù)、鏈表的實(shí)現(xiàn)的集合Set復(fù)雜度分析實(shí)例詳解

    Java基于二分搜索樹(shù)、鏈表的實(shí)現(xiàn)的集合Set復(fù)雜度分析實(shí)例詳解

    這篇文章主要介紹了Java基于二分搜索樹(shù)、鏈表的實(shí)現(xiàn)的集合Set復(fù)雜度分析,結(jié)合實(shí)例形式詳細(xì)分析了Java基于二分搜索樹(shù)、鏈表的實(shí)現(xiàn)的集合Set復(fù)雜度分析相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • El表達(dá)式使用問(wèn)題javax.el.ELException:Failed to parse the expression的解決方式

    El表達(dá)式使用問(wèn)題javax.el.ELException:Failed to parse the expression

    今天小編就為大家分享一篇關(guān)于Jsp El表達(dá)式使用問(wèn)題javax.el.ELException:Failed to parse the expression的解決方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • springboot+redis+阿里云短信實(shí)現(xiàn)手機(jī)號(hào)登錄功能

    springboot+redis+阿里云短信實(shí)現(xiàn)手機(jī)號(hào)登錄功能

    這篇文章主要介紹了springboot+redis+阿里云短信實(shí)現(xiàn)手機(jī)號(hào)登錄功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)音頻添加自定義時(shí)長(zhǎng)靜音的示例代碼

    Java實(shí)現(xiàn)音頻添加自定義時(shí)長(zhǎng)靜音的示例代碼

    這篇文章主要介紹了一個(gè)Java工具類(lèi),可以實(shí)現(xiàn)給一個(gè)wav音頻添加自定義時(shí)長(zhǎng)靜音。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • Java中數(shù)組的多種定義方式總結(jié)

    Java中數(shù)組的多種定義方式總結(jié)

    在?Java?編程語(yǔ)言中,數(shù)組是一種核心且基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)具有相同類(lèi)型的多個(gè)元素,本文將深入探討?Java?中數(shù)組定義的多種方式,希望對(duì)大家有所幫助
    2024-11-11
  • SpringBoot整合RocketMQ實(shí)現(xiàn)發(fā)送同步消息

    SpringBoot整合RocketMQ實(shí)現(xiàn)發(fā)送同步消息

    RocketMQ 是一款開(kāi)源的分布式消息中間件,由阿里巴巴開(kāi)源,它具有高可用性、高性能、低延遲等特點(diǎn),廣泛應(yīng)用于阿里巴巴集團(tuán)內(nèi)部以及眾多外部企業(yè)的業(yè)務(wù)系統(tǒng)中,本文給大家介紹了SpringBoot整合RocketMQ實(shí)現(xiàn)發(fā)送同步消息,需要的朋友可以參考下
    2024-04-04
  • idea中使用git插件回滾代碼的流程步驟

    idea中使用git插件回滾代碼的流程步驟

    使用idea開(kāi)發(fā)java代碼時(shí),如果想回滾git提交的代碼, 需要操作三步,本篇步驟操作前,前提是你的電腦已經(jīng)安裝了git插件,并且你的idea也集成了git插件,下面是詳細(xì)步驟,需要的朋友可以參考下
    2025-04-04
  • springboot整合@Retryable實(shí)現(xiàn)重試功能的示例代碼

    springboot整合@Retryable實(shí)現(xiàn)重試功能的示例代碼

    本文主要介紹了springboot整合@Retryable實(shí)現(xiàn)重試功能的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java的動(dòng)態(tài)代理模式之Cglib代理詳解

    Java的動(dòng)態(tài)代理模式之Cglib代理詳解

    這篇文章主要介紹了Java的動(dòng)態(tài)代理模式之Cglib代理詳解,Cglib代理也叫作?子類(lèi)代理,它是在內(nèi)存中構(gòu)建一個(gè)子類(lèi)對(duì)象從而實(shí)現(xiàn)對(duì)目標(biāo)對(duì)象功能擴(kuò)展,?有些書(shū)也將Cglib代理歸屬到動(dòng)態(tài)代理,需要的朋友可以參考下
    2023-11-11
  • servlet Cookie使用方法詳解(六)

    servlet Cookie使用方法詳解(六)

    這篇文章主要為大家詳細(xì)介紹了servlet Cookie的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09

最新評(píng)論

桂东县| 双鸭山市| 井冈山市| 美姑县| 竹山县| 江华| 纳雍县| 和硕县| 仁怀市| 会同县| 宁河县| 陕西省| 内黄县| 桦南县| 库伦旗| 鲁甸县| 潜山县| 土默特左旗| 怀集县| 交城县| 忻城县| 金昌市| 岱山县| 孟州市| 蓝山县| 江源县| 江山市| 旌德县| 平湖市| 北碚区| 临高县| 分宜县| 海门市| 泾川县| 化隆| 新源县| 道孚县| 南阳市| 中西区| 绵阳市| 芦溪县|