接口中的java泛型问题

时间:2013-10-13 14:43:05

标签: java generics

我正在实现一个可以管理堆栈的接口,我有以下代码:

public interface Stack <E>{
    public int size();
    public boolean isEmpty();
    public E top();
    public void push(E item);    //error here

并且实现此接口的类具有:

public class StackArray<E> implements Stack{
    private E array[];
    private int top=-1;
    public StackArray(int n){
        array=(E[]) Array.newInstance(null, n); ////not quite sure about this
    }
    //more code
    public void push(E item){
        if (top==array.length-1) System.out.println("stack is full");
        else{
            top++;
            array[top]=item;
        }
    }

我得到的错误是我没有覆盖push方法,我看到两者都有相同的签名,但我不太确定。

我该如何解决?

1 个答案:

答案 0 :(得分:5)

您未将E中的StackArray参数绑定到E中的Stack参数。使用此声明:

public class StackArray<E> implements Stack<E>