Okey, jag fattar du...du hade skrivit inparameterns typ (orderItem) med liten bokstav, men det är ju en klass så den ska vara med stor bokstav. Det var det som förvirrade mig.
public void addOrderItem(orderItem o){
getOrderItems().add(o);
}
Dock fattar jag nog inte riktigt hur det hela ska fungera. Kolla här på min kod.
Order
-------
public class Order
{
//Alla dina instansvariablar
private String countryCode;
private String customerOrderNo;
private String customerNo;
private Date deliveryDate;
private int price;
private List orderItems;
public void print(){
for(Iterator i=orderItems.iterator(); i.hasNext(); ) {
Object[] obj = (Object[]) i.next();
String countryCode = (String) obj[0];
String customerOrderNo = (String) obj[1];
String orderLineNo = (String) obj[2];
String articleNo = (String) obj[3];
String articleName = (String) obj[4];
String quantity = (String) obj[5];
String price = (String) obj[6];
String volume = (String) obj[7];
String deliveryDate = (String) obj[8];
System.out.println("CountryCode: " + countryCode);
System.out.println("customerOrderNo: " + customerOrderNo);
System.out.println("orderLineNo: " + orderLineNo);
System.out.println("articleNo: " + articleNo);
System.out.println("articleName: " + articleName);
System.out.println("quantity: " + quantity);
System.out.println("price: " + price);
System.out.println("volume: " + volume);
System.out.println("deliveryDate: " + deliveryDate + "\\n");
}
}
public Order()
{
//Gör vad du vill här
setOrderItems(new ArrayList());
}
//alla dina andra instansmetoder
private void setOrderItems(List a){
orderItems = a;
}
private List getOrderItems(){
return orderItems;
}
public void addOrderItem(OrderItem o){
getOrderItems().add(o);
}
public void removeOrderItem(OrderItem o){
getOrderItems().remove(o);
}
//...getter & setter för attributen
}
OrderItem
-------------
import java.util.*;
public class OrderItem {
//Alla dina instansvariablar
private String countryCode;
private String customerOrderNo;
private String orderLineNo;
private String articleNo;
private String articleName;
private int quantity;
private int price;
private int volume;
private int weight;
private Date deliveryDate;
private Order order;
public OrderItem() {
//Gör vad du vill här
//setOrderItems(new ArrayList());
setOrder(new Order());
setCountryCode("SE");
setCustomerOrderNo("135020");
setOrderLineNo("1");
setArticleNo("1111");
setArticleName("BILLY HYLLA");
setQuantity(10);
setPrice(1500);
setVolume(150);
setWeight(20);
}
//alla dina andra instansmetoder
// setter metoder för övriga attribut
/\*\*
\* @param order
\*/
public void setOrder(Order order) {
this.order = order;
}
/\*\*
\* @param string
\*/
public void setOrderLineNo(String string) {
orderLineNo = string;
}
// setter metoder för övriga attribut
}
OrderMain
-------------
public class OrderMain {
public static void main(String[] args) throws Exception{
OrderItem newOrderItem = new OrderItem();
Order newOrder = new Order();
newOrder.addOrderItem(newOrderItem);
newOrder.print();
}
}
Jag kör detta med får följande fel:
java.lang.ClassCastException: OrderItem
at Order.print(Order.java:15)
at OrderMain.main(OrderMain.java:11)
Exception in thread "main"
Har jag tänkt fel eller?