Java泛型错误:无法从E转换为E? 公共类优先队列{ 私有E[]数组; 私有整数大小; 私人内部阵线; 私人int back; 私有int numOfElements=0; 私有静态int EMPTY=0; 公共整数插入(E输入) { 如果(numOfElements+1
Yout正在声明两个具有相同名称的类型参数Java泛型错误:无法从E转换为E? 公共类优先队列{ 私有E[]数组; 私有整数大小; 私人内部阵线; 私人int back; 私有int numOfElements=0; 私有静态int EMPTY=0; 公共整数插入(E输入) { 如果(numOfElements+1,java,generics,Java,Generics,Yout正在声明两个具有相同名称的类型参数E。则无需这样做。类声明PriorityQueue中的类型参数就足够了 改变 public class PriorityQueue<E> { private E[] array; private int size; private int front; private int back; private int numOfElements = 0; private static int EMPTY = 0; public <E
E
。则无需这样做。类声明PriorityQueue
中的类型参数就足够了
改变
public class PriorityQueue<E> {
private E[] array;
private int size;
private int front;
private int back;
private int numOfElements = 0;
private static int EMPTY = 0;
public <E> int insert(E input)
{
if (numOfElements + 1 <= size)
{
array[back] = input;
back++;
numOfElements++;
}
return 0;
}
从insert方法中删除泛型参数,它将进行编译。您不需要在方法级别为泛型,因为您在类的泛型参数中已经具有队列的类型
public int insert(E input)
公共类优先队列{
私有E[]数组;
私有整数大小;
私人内部阵线;
私人int back;
私有int numOfElements=0;
私有静态int EMPTY=0;
公共整数插入(E输入){
如果(numOfElements+1),insert()
方法的
参数是不必要的,它会隐藏同名的类级参数。
public int insert(E input)
public class PriorityQueue<E> {
private E[] array;
private int size;
private int front;
private int back;
private int numOfElements = 0;
private static int EMPTY = 0;
public int insert(E input) {
if (numOfElements + 1 <= size) {
array[back] = input;
back++;
numOfElements++;
}
return 0;
}
}