[操作疑難] JAVA, 同一個問題再問

本帖最後由 twaiho2003 於 2015-11-4 14:59 編輯

http://www.hkepc.com/forum/viewt ... page%3D3&page=1

之前講到我有3個class:   物品class, 購物車class,  已放入購物車的物品 class
這個已放入購物車的物品 class 需要原整copy  物品class的attribute. 附加個數量.
我原本想   item 直接cast去ShoppingCartItem , 再assign 個value 比quantity.
但係原來做唔到, 所以跟據各位ching的意見就寫左以下structure. 我以為搞掂, 但係當我改左價錢,
咁咪大獲, 個價錢都係reference,  
有冇方法item 直接cast去ShoppingCartItem, 或類似做法, 我要keep 一份copy, 唔係reference

public class Item {
private UUID itemId;
private String itemName;
private BigDecimal itemPrice;
}

public class ShoppingCartItem {
private Integer quantity;
private UUID itemId;
}

public class Cart {
private List<ShoppingCartItem> items;
}

回覆 1# twaiho2003


ShoppingCartItem個價錢係reference無問題, 你一日未結算, ShoppingCartItem個價錢都係跟item.
如果吾係, 特價貨品賣晒la, 由於我仲有件喺shopping cart, 我仲買到

TOP

要keep 一份copy:
public class Item {
private UUID itemId;
private String itemName;
private BigDecimal itemPrice;

//TODO: getters and setters
}

public class ShoppingCartItem extends Item  {
private Integer quantity;
    public ShoppingCartItem (Item anItem){
        this.itemId=anItem.getItemId();
        this.itemName = anItem.getItemName();
        this.itemPrice = anItem.getItemPrice();
    }
    //TODO: getters and setters
}

public class Cart {
private List<ShoppingCartItem> items;
}

TOP

之前講到我有3個class:   物品class, 購物車class,  已放入購物車的物品 class
這個已放入購物車的物品 c ...
twaiho2003 發表於 2015-11-4 14:58


唔明你嘅問題喺邊..睇唔明你係想點?
你想一個item 加入cart 嗰陣,個cart item就有個fix 死嘅價錢?
係嘅話你create cartitem嗰陣個價錢make 一個copy 唔得?
你到底想你嘅cartitem有咩功能?

TOP

回覆 2# kaygood


    係wo, 諗漏左呢點

咁invoice, 或營業記錄之類果d record. 點都要儲一份係fixed, 用黎遲d睇返,   對下岩唔岩數,  報稅之類
點都要copy一次

TOP

回覆 3# kaygood


    真係咁做...... , java有冇javascript呢種做法

var itemA = {
    name: "Item A",
    price: 2.0
};

var cartItem1 = (JSON.parse(JSON.stringify(itemA )));
cartItem1.quantity = 1

TOP

回覆  kaygood


    係wo, 諗漏左呢點

咁invoice, 或營業記錄之類果d record. 點都要儲一份係fixed, 用 ...
twaiho2003 發表於 2015-11-4 15:27


你真係想咁樣copy 一次?
如果嗰件item 嘅description要改,你就搵返晒所有cart item/invoice item嘅description 嚟改?

TOP

回覆 7# masseffect


    係呀, 例如當時條款寫3年保, 宜家改左2年, 都冇理由改埋已成交果D條款.

TOP

回覆  masseffect


    係呀, 例如當時條款寫3年保, 宜家改左2年, 都冇理由改埋已成交果D條款. ...
twaiho2003 發表於 2015-11-4 16:07


一個item落左cart 同俾左錢根本係兩個唔同嘅state
落左個cart你個item就snapshot 左?咁俾錢嗰陣同update左嘅item咪唔同囉..
你個問題根本係你未諗清楚個流程係點

TOP

回覆 9# masseffect


    cart 照跟返原先咁做, 理由係跟#2
另外再做個class 係for 比錢後一個snapslot.
呢個class用黎做save落database 之前一個載體
同埋係database get返出黎的載體

TOP