我有一個Order類,如下圖所示:重用Java類對象的
public class Order {
private List<OrderLine> orderLines = new ArrayList<OrderLine>();
public void add(OrderLine o) throws Exception {
if (o == null) {
System.err.println("ERROR - Order is NULL");
}
orderLines.add(o);
}
public void clear() {
this.orderLines.clear();
}
}
現在我的主要我想使用的順序和更新列表中的一個變量並打印輸出
我的主類代碼:
public static void main(String[] args) throws Exception {
Map<String, Order> allOrders = new HashMap<String, Order>();
//Build Order 1
Order order = new Order();
order.add(new OrderLine(new Item("book", (float) 12.49), 1));
order.add(new OrderLine(new Item("Pen", (float) 14.99), 1));
allOrders.put("Order 1", order);
order.clear();
//Build Order 2
// Reuse cart for an other order
order.add(new OrderLine(new Item("imported box of chocolate", 10), 1));
order.add(new OrderLine(new Item("perfume", (float) 47.50), 1));
allOrders.put("Order 2", order);
order.clear();
}
在這裏,我創建了訂單對象和addign細節之一,在對象和更新加入這list.Now結算數據具有新訂單細節但第一訂單細節的對象也用二階細節更新。我認爲訂單對象是通過參考傳遞的。如何實現對象重用,避免通過參考並具有所有訂單明細?
Regards, Nagasree。
的[可能的複製就是Java「通過逐引用「或」按值傳遞「?](http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value) –
Java是,並將永遠傳遞價值。 http://javadude.com/articles/passbyvalue.htm – QBrute
我不相信你對你的答案做了足夠的研究,問題很簡單 –