1. 程式人生 > >【Java】類賦值的使用方式

【Java】類賦值的使用方式

region pre tin image 直接 beanutils 期望 http span

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

技術分享圖片

【Java】類賦值的使用方式