我正在使用我以前关于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
}