Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用集合进行Java泛型编程_Java - Fatal编程技术网

用集合进行Java泛型编程

用集合进行Java泛型编程,java,Java,这项任务我已经做了好几个星期了。我只是需要一些帮助来开始。 这是第一个要求: 设计一个名为GenericOrder的通用容器,该容器充当Products.java中任意数量对象的集合。设计一种机制,为容器的每个实例提供一个唯一标识符。根据需要实施尽可能多的方法。您必须使用Java泛型特性 这就是我所拥有的,我不知道我是否做对了。讲师说,这个通用订单必须使用集合来保存多个“产品” 公共类GenericOrder{ 产品的私有化; 私有静态整数计数=1; 私有最终整数orderNumber=coun

这项任务我已经做了好几个星期了。我只是需要一些帮助来开始。 这是第一个要求:

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

这就是我所拥有的,我不知道我是否做对了。讲师说,这个通用订单必须使用集合来保存多个“产品”

公共类GenericOrder{
产品的私有化;
私有静态整数计数=1;
私有最终整数orderNumber=count++;
私人募捐;
公共通用订单(T类)
{
this.theProduct=类;
}
公共字符串getProductID()
{
返回product.getClass().getName()+“:”+订单号;
}
公共创建实例()
抛出IllegalAccessException,实例化Exception{
退回此产品;
}
}

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

公共类GenericOrder{
列出排序的产品。。。
公共通用订单(列出产品){
...
}
}
但我真的不知道泛型应该如何帮助这一点,我不能诚实地从上下文中“拼凑”作业,所以,YMMV


快乐编码:)

我可能完全错了,但我觉得你应该继承收藏品。对于唯一标识符,我可能会使用地图

设计一个名为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();
    }
}
公共类GenericOrder{
私有静态int ID=0;
私有字符串序列;
列出产品清单;
公共通用订单(){
serial=“CONTAINER_”+ID++;
products=新的ArrayList();
}
公共字符串getUniqueSerial(){
返回序列号;
}
公共无效添加产品(T新产品){
产品。添加(新产品);
}
public int getNumberOfProducts(){
返回产品。大小();
}
}

那么你的问题是什么?你是在问你的
课程是否满足作业要求吗?在我看来,你在以某种奇怪的方式混合产品和容器。。你需要什么“产品”和所有以某种方式干预它的方法?我认为他不必继承
集合
。他描述说,它必须作为一个集合。唯一标识符是指标识容器。要使用
地图
,您仍然需要知道钥匙。谢谢您的回复。我会用你的代码和指导老师再核对一遍。这是一门远程学习课程,所以我很难向老师提问
public class GenericOrder<T> {
  List<T> productsOrdered ...
  public GenericOrder(List<T> products) {
     ...
  }
}
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();
    }
}