错误:不兼容的类型AnyType topStuff = top.data;



我正在使用我以前关于linkedlists的实验室的旧代码编写一个流行方法。我的代码看起来很完美,但是我总是得到一个错误

错误:类型不兼容
返回top.data;
要求:AnyType
发现:对象
其中AnyType是类型变量:
AnyType扩展在类栈中声明的对象

我不知道如何解决这个错误!我读过其他关于在其他情况下同样错误的帖子,但已知似乎适用于我的情况,或者我不知道如何将其应用于我的情况。

public class Stack<AnyType> implements StackInter<AnyType>
{
    MyNode top = new MyNode();
    public void push(AnyType x)
    {
        MyNode newNode = new MyNode();
        newNode.data = top.data;
        top.data = x;
        newNode.next = top.next;
        top.next = newNode;
    }
    public AnyType pop()
    {
        if(isEmpty())
            return null;
        else{
            AnyType topStuf = top.data;   // Getting error on this line
            top = top.next;
            return topStuff;
        }
    }
    public boolean isEmpty()
    {
        return top == null;
    }
    public AnyType(peek)
    {
        return top.data;
    }
}

public class MyNode<AnyType>
{
    public AnyType data;
    public MyNode<AnyType> next;
}

用T代替Anytype。在Java中,泛型默认定义为T,因为它扩展了对象类。而且peek函数定义不正确

public T peek() {
    //code here  
}

相关内容

  • 没有找到相关文章

最新更新