如何在另一个类中使用Queue.java

如何在另一个类中使用Queue.java,java,queue,Java,Queue,当我执行上述操作时,确实收到警告“队列是原始类型。对泛型类型队列的引用应参数化” 我是Java初学者。感谢您的帮助。您的队列是一个参数化类。Java警告您,扩展它的类(Inventory,在您的情况下)可能也应该参数化: public class Inventory extends Queue{} 公共类资源清册扩展队列{ // ... } 在重用类之前,您需要问问自己,还是这样做?一旦理解了这一点,您就会知道库存是否需要扩展队列,或者是否有一个类型为Queue的字段 为了回答这个问题,您需要

当我执行上述操作时,确实收到警告“队列是原始类型。对泛型类型队列的引用应参数化”


我是Java初学者。感谢您的帮助。

您的
队列是一个参数化类。Java警告您,扩展它的类(
Inventory
,在您的情况下)可能也应该参数化:

public class Inventory extends Queue{}
公共类资源清册扩展队列{
// ...
}

在重用类之前,您需要问问自己,还是这样做?一旦理解了这一点,您就会知道库存是否需要扩展队列,或者是否有一个类型为Queue的字段

为了回答这个问题,您需要问自己一些问题:

  • 是否要对资源清册使用所有队列方法,包括
    front()
    enqueue()
    、和
    dequeue()
  • 您是否希望以后能够重用
    库存
    以支持非
    队列
    (可能是
    堆栈
    ?)的数据-has-a关系通常更容易重构
  • 是否希望能够将
    库存
    传递给接受
    队列
    作为参数的方法

  • 如果库存是一个队列(我认为这不是您想要的),您确实需要扩展它:

    public class Inventory <T> extends Queue<T> {
        // ...
    }
    
    但是,如果更可能的情况是,并且库存有一个队列,则需要在库存中分配一个字段,其类型为
    Queue

    public class Inventory extends Queue<Item>{}
    
    公共类目录{
    专用队列;
    }
    
    或者,如果只有一种类型的项目:

    public class Inventory <T> {
         private Queue<T> queue;
    }
    
    公共类目录{
    专用队列;
    }
    
    首先,你需要问问自己,还是这样?如果理解了这一点,您就会知道库存是否需要扩展队列,或者是否有一个字段的类型为Queue要回答这个问题,我想以FIFO方式将项目从库存中排队,因此我猜库存本身应该是一个队列,换句话说,队列库存包含项目列表这不是一个好答案,虽然它解决了警告问题,但它并没有教会OP(承认自己是新手程序员)对象设计的基本原理。请注意,问题不是如何解决警告,而是如何重用队列。谢谢,这是对我的问题的一个非常深刻的回答
    public class Inventory extends Queue<Item>{}
    
    public class Inventory <T> {
         private Queue<T> queue;
    }
    
    public class Inventory {
         private Queue<Item> queue;
    }