首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用集合进行Java泛型编程

使用集合进行Java泛型编程
EN

Stack Overflow用户
提问于 2010-12-03 14:31:21
回答 3查看 578关注 0票数 0

我已经被这项任务困了好几个星期了。我只是需要一些帮助才能开始。这里是第一个要求:

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

这就是我所拥有的,我不知道我做得对不对。讲师说,这个GenericOrder必须使用集合来容纳多个“产品”。

代码语言:javascript
复制
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;
    }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-03 14:46:52

设计一个名为GenericOrder的通用容器,它充当任意数量的对象的集合

更确切地说,更改容器以包含@pst建议的内容。

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

在这里,您几乎是正确的。但你的总体想法是正确的。

代码语言:javascript
复制
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();
    }
}
票数 0
EN

Stack Overflow用户

发布于 2010-12-03 14:37:17

我假设每个“订单”可以有多个“产品”:

代码语言:javascript
复制
public class GenericOrder<T> {
  List<T> productsOrdered ...
  public GenericOrder(List<T> products) {
     ...
  }
}

但我真的不知道泛型应该如何帮助这一点,而且我也不能诚实地从那个上下文中“拼凑”任务,所以,YMMV。

祝你编码愉快。:)

票数 1
EN

Stack Overflow用户

发布于 2010-12-03 14:46:04

我在这里可能完全错了,但我觉得你应该继承Collection。对于唯一标识符,我可能会使用map。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4343056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档