如何将通用项添加到通用ArrayList?

use*_*042 5 java generics arraylist

我有一个任务,要求我从头开始实现一个通用的优先级队列,但是我得到一个我认为没有任何意义的错误.

public class PriorityQueue<E> {
     private ArrayList<E> items = new ArrayList<E>(0);
     ...
     public <E extends Comparable<E>> void insert(E newItem){

       if(numOfItems == 0){
          items.add(newItem); //ERROR: The method add(E) in the type ArrayList<E> 
                                       is not applicable for the arguments (E)
          rear++;
          numOfItems++;
       }else{
            //INCOMPLETE
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

bkn*_*per 3

你不需要

<E extends Comparable<E>>
Run Code Online (Sandbox Code Playgroud)

在这种情况下。您已经在类级别声明了它,因此不需要在方法声明中使用类型参数。

你可以直接声明

 public void insert(E newItem){
Run Code Online (Sandbox Code Playgroud)

然后它就会编译。