gpt4 book ai didi

java - 错误参数类型 E 隐藏了类型 E

转载 作者:行者123 更新时间:2023-12-01 13:13:32 24 4
gpt4 key购买 nike

我正在创建一个通用链接堆栈。创建如下所示的新节点时会出现此错误:

private class Node<E> {

我的代码有什么问题导致了这个问题?

public class LinkedStack<E> implements StackBehavior<E> {

private class Node<E> {
private E element;
private Node<E> next;
private Node(E element) {
this.element = element;
this.next = null;

}
private Node(E element, Node<E> next) {
this.element = element;
this.next = next;
}
}

private Node<E> top = null;

public void push(E item) {
top = new Node<E>(item, top);
}

public E pop() {
if (top == null) {
throw new EmptyStackException("Pop error: Stack is empty.");
}
E item = top.element;
top = top.next;
return item;
}

public E peek() {
if (top == null) {
throw new EmptyStackException("Peek error: Stack is empty.");
}
return top.element;
}

public boolean isEmpty() {
return (top == null);
}

public String toString() {
Node<E> curr = top;
String stringStack = "top";
while (curr != null) {
stringStack += " --> " + curr.element;
curr = curr.next;
}
return stringStack;
}
}

最佳答案

在此声明中

public class LinkedStack<E> implements StackBehavior<E> {

您正在声明一个名为 E 的新类型变量。

在此内部类声明中

private class Node<E> {

您正在声明一个新类型变量,也称为E。在 Node 内任何使用 Node.E 都会隐藏 LinkedStack 中声明的可访问类型变量 E

这是一个警告,不是错误,但如果您确实需要类型变量,请考虑更改名称(但您似乎不需要)。

关于java - 错误参数类型 E 隐藏了类型 E,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22646958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com