나는 클래스 주문이 있습니다재사용
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();
}
}
이제 출력을
내 주를 위해 업데이트 목록의 하나 개의 변수를 사용하여 인쇄 할 내 주에 클래스 코드 : 여기에 내가 주문 객체와 addign 세부 사항 중 하나 생성하고 객체 및 업데이트에 list.Now 용지에 데이터를이를 추가하고
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();
}
새로운 주문 세부 사항을 가진 객체지만 첫 번째 주문 세부 사항도 두 번째 세부 사항으로 업데이 트됩니다. 나는 주문 개체 참조로 통과 생각합니다. 어떻게 참조 재현을 피하고 모든 주문 세부 사항을 피하기 위해 객체 재사용을 달성 ??
감사합니다. 나가 서리.
가능한 중복 자바가 "통과 부산물 참조 "또는"패스 바이 값 "?] (http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value) –
Java는 항상 그렇듯이 가치에 의해 지나치다. http://javadude.com/articles/passbyvalue.htm – QBrute
나는 당신이 당신의 대답에 대해 충분한 연구를했다고 믿지 않는다. 문제는 매우 간단하다. –