2010-12-03 79 views
0

我已经坚持这个任务数周了。我只需要一些帮助就可以开始。 以下是第一个请求:Java与泛型的泛型编程

设计一个名为GenericOrder的通用容器,该容器充当Products.java中任意数量对象的集合。设计一个机制,为容器的每个实例提供唯一的标识符。根据需要实施多种方法。您必须使用Java泛型功能。

这就是我所拥有的,如果我做对了,我也不会。导师说,这个GenericOrder必须使用集合来保存多个“Product”。

public class GenericOrder<T> { 
    private T theProduct; 
    private static int count = 1; 
    private final int orderNumber = count++; 
    private Collection<T> genCollection; 

    public GenericOrder(T theClass) 
    { 
     this.theProduct = theClass; 
    } 

    public String getProductID() 
    { 
    return theProduct.getClass().getName() + ": " + orderNumber; 
    } 

    public T createInstance() 
    throws IllegalAccessException, InstantiationException { 
     return this.theProduct; 
    } 
} 
+0

那么你的问题是什么?你问你的'班'是否满足作业? – Gabe 2010-12-03 06:33:51

+0

在我看来,你以某种奇怪的方式混合了产品和容器。对于你需要的产品和所有干扰它的方法? – heikkim 2010-12-03 06:40:08

回答

0

设计了一个名为GenericOrder通用容器,充当对象

任意数量的集合,而改变你的容器包括@pst建议什么。

设计一种机制,为容器的每个实例提供唯一标识符。

在这里,你明白了吧。但你的一般想法是正确的。

public class GenericOrder<T> { 
    private static int ID = 0; 
    private String serial; 
    List<T> products; 

    public GenericOrder() { 
     serial = "CONTAINER_" + ID++; 
     products = new ArrayList<T>(); 
    } 

    public String getUniqueSerial() { 
     return serial; 
    } 

    public void addProduct(T newProduct) { 
     products.add(newProduct); 
    } 

    public int getNumberOfProducts() { 
     return products.size(); 
    } 
} 
1

我会想象可以有多个“产品”每“令”:

public class GenericOrder<T> { 
    List<T> productsOrdered ... 
    public GenericOrder(List<T> products) { 
    ... 
    } 
} 

但我真的不知道仿制药应该如何帮助这一点,我不能诚实“拼凑起来”就是这样的背景下的任务,YMMV。

快乐编码。 :)

0

我可能在这里都是错误的,但它听起来像你应该从收集继承。而对于唯一的标识符,我可能会使用地图。

+0

我不认为他必须继承`集合`。他的描述说它必须*作为一个集合*。唯一标识符是指识别容器。要使用“Map”,您仍然需要知道密钥。 – 2010-12-03 06:48:48