绑定不匹配链表Java

绑定不匹配链表Java,java,generics,linked-list,stack,Java,Generics,Linked List,Stack,我正在做一个任务,使用链表在java中创建一个堆栈,但是我遇到了一个错误,这阻止了我做任何事情。 这里是所有节点类的第一个 public class SortedLinkedSetNode<T extends Comparable<T>>{ protected T value; protected SortedLinkedSetNode<T> next; // other methods } 公共类SortedLinkedSetN

我正在做一个任务,使用链表在java中创建一个堆栈,但是我遇到了一个错误,这阻止了我做任何事情。 这里是所有节点类的第一个

public class SortedLinkedSetNode<T extends Comparable<T>>{
    protected T value;
    protected  SortedLinkedSetNode<T> next;
    // other methods
} 
公共类SortedLinkedSetNode{
保护T值;
受保护的SortedLinkedSetNode下一步;
//其他方法
} 
现在这里是Stack类,我只给出Push方法,因为那里发生了错误

 public class StackList<E> implements Stack<E> {
     protected SortedLinkedSetNode upperMost;
     public void push( E element) {
        SortedLinkedSetNode <E> newNode = new SortedLinkedSetNode (element);
        newNode.next = upperMost;
        upperMost = newNode;    
    }
}
public类StackList实现堆栈{
受保护的SortedLinkedSetNode最上面;
公共无效推送(E元素){
SortedLinkedSetNode newNode=新的SortedLinkedSetNode(元素);
newNode.next=最上面;
最上面的=新节点;
}
}
问题是,当我尝试在内部推送新节点时,会收到以下消息:

Bound mismatch: The type E is not a valid substitute for the bounded parameter <T extends Comparable<T>> of the type  SortedLinkedSetNode<T>
绑定不匹配:类型E不是SortedLinkedSetNode类型的绑定参数的有效替代品
我试图修改stack类,使其

public class StackList<E extends Comparable<E>> implements Stack<E> {
public类StackList实现堆栈{
但我不允许修改它(这只是作业规范)。我也尝试过使用T,但没有使用任何东西和各种组合,但总是有一个错误。我认为这一切都源于此(已给出)

公共类SortedLinkedSetNode{
但我不确定,也不确定如果真的是从这里开始的话该怎么办
有人能帮我弄清楚这到底是什么,以及我如何解决它。如果我不能在stack类中创建一个新节点,我怎么才能开始执行Push-Pop等?谢谢你

“类型E不是SortedLinkedSetNode类型的bounded parameter>的有效替代品”这意味着
E
T extends Comparable
更通用。您声明您的泛型类型
T
必须
extend Comparable
,而
没有此类限制,因此,
E
对于
SortedLinkedSetNode
无效

如果不能修改堆栈类,那么除了将类更改为

public class SortedLinkedSetNode<T>
公共类SortedLinkedSetNode
您还需要在对象实例化中使用

new SortedLinkedSetNode<E>(element);
新的SortedLinkedSetNode(元素);

您已将您的
SortedLinkedSetNode
类设置为通用类,上界为
T
。但是,当您尝试在
堆栈列表中使用
E
类时,您没有使用相同的上界声明
E
,从而导致边界不匹配。请尝试将上界添加到
E
上<代码>堆栈列表

public class StackList<E extends Comparable<E>> implements Stack<E> {
此外,在创建新的
SortedLinkedSetNode
时,将
添加到中(如果使用Java 1.7+,可以是菱形“操作符”

SortedLinkedSetNode newNode=新的SortedLinkedSetNode(元素);

你不应该有
公共类StackList实现堆栈
?你不能在
堆栈
中有
SortedLinkedSetNode
。这也没有意义。你应该在那里有普通的
LinkedSetNode
。如果你想有
SortedLinkedSetNode
,你必须有一个
堆栈
需要可比较的对象。必须使类型参数兼容。
public class StackList<E extends Comparable<E>> implements Stack<E> {
protected SortedLinkedSetNode<E> upperMost;
SortedLinkedSetNode<E> newNode = new SortedLinkedSetNode<E> (element);