【Java】類賦值的使用方式


        Regioninfo regioninfo=new Regioninfo();
        regioninfo.setDistance(0);
        regioninfo.setInside(1);
        regioninfo.setShopid(2428069);
        regioninfo.setType(5);
        regioninfo.setRecalltype(0);
        regioninfo.setShopname("潑水廣場");

        Regioninfo regioninfo2=regioninfo;
        regioninfo2.setDistance(1000);

 

期望的結果的是regioninfo.getDistance()=0; regioninfo2.getDistance()=1000;

但是運行的結果是:

 

因為引用傳遞,變更某個屬性會讓兩個值都發生變化,在內存中兩個類公用同一個存儲。

如果想直接copy 某個類的屬性,但是又有變更的話,可以使用 :BeanUtils.copyProperties(目標類,源類);

        Regioninfo regioninfo=new Regioninfo();
        regioninfo.setDistance(0);
        regioninfo.setInside(1);
        regioninfo.setShopid(2428069);
        regioninfo.setType(5);
        regioninfo.setRecalltype(0);
        regioninfo.setShopname("潑水廣場");

        Regioninfo regioninfo2=new Regioninfo();
        BeanUtils.copyProperties(regioninfo2,regioninfo);
        regioninfo2.setDistance(10000);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM