-4
我想完成使用Stack類的peek方法。我試圖返回頂部元素的值。如何返回節點類型的值?
public class stack<T> implements StackInt<T>
{
Node<T> root;
public boolean isEmpty()
{
Node<T> top = root;
if(top == null)
{
return true;
}
return false;
}
public T peek() throws EmptyStackException
{
Node<T> top = root;
if(isEmpty())
{
throw new EmptyStackException("stack underflow");
}
return top.val;
}
}
當我編譯它給了我一個錯誤:
stack.java:34: error: cannot find symbol
return top.val;
^
symbol: variable val
location: variable top of type Node<T>
where T is a type-variable:
T extends Object declared in class stack
下面是Node類:
public class Node<T>
{
T data;
Node<T> next;
public Node(T data, Node<T> next)
{
this.data = data;
this.next = next;
}
public String toString()
{
return "" + this.data;
}
}
什麼是我的語法錯誤?我試圖使用節點來創建peek/push/pop方法。但我不得不在我的代碼中使用T的泛型類型。
謝謝
由於錯誤是想告訴你,你試圖返回一個領域,不存在。 – SLaks
我們需要查看Node源代碼。請參閱[mcve]。 – GhostCat
'節點'沒有'val'成員。你期望如何訪問它? –
Guy