java - 类型参数不在类型变量的范围内

标签 java stack

<分区>

嗨 Stack Overflow 社区 ^_^

基本上,我正在使用堆栈并将中缀方程式转换为后缀方程式。 这是我尝试编译 Stack 类时屏幕上显示的错误消息:

Stack.java:5: error: type argument T#1 is not within bounds of type-variable T#2
    private LinkedList<T> list;
                       ^
  where T#1,T#2 are type-variables:
    T#1 extends Object declared in class Stack
    T#2 extends Comparable<T#2> declared in class LinkedList

我在试图找出这个错误时遇到了真正的麻烦,但遗憾的是我不知道可能是什么问题。如果我知道得更好一点,我可以为您提供更多信息。

在此先感谢您的任何意见和帮助!

更新:这是我的课...

package ListPkg; 

public class Stack<T> //    implements Comparable<Stack>>  
{ 
    private LinkedList<T> list; 

    public Stack()
    {
        this("list");
    }
    public Stack(String name)
    {
        list = new LinkedList(name);
    }
    public void push(T item)
    {
        list.insertAtFront(item);
    }
    public T pop()
    {
        list.removeFromFront();
    }
    public int lenghtIs()
    {
        return list.lengthIs();
    }
    public T peek()
    {
        return list.returnFirstNode();
    }
    public void print()
    {
        list.print();
    }
    public boolean isEmpty()
    {
        return list.isEmpty();
    }
}

最佳答案

您似乎有一个类 LinkedList 声明为

class LinkedList<T extends Comparable<T>> {...}

但您正试图在声明为 Stack 的类中使用它

class Stack<T> {
    private LinkedList<T> list;
    ...
}

Stack中声明的类型变量TLinkedList中的类型变量T完全无关。更重要的是,它们不兼容。 LinkedList 期望一个类型是 Comparable 的子类型,但是 Stack 给它一个没有边界的类型参数。编译器不允许这样做。

为您的 Stack 类的类型参数添加适当的边界

class Stack<T extends Comparable<T>> {

关于java - 类型参数不在类型变量的范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650289/

相关文章:

c++ - 修复 C++ 遗留代码 : class Iterator

java - 将 request 属性从 request 注入(inject)到 spring Controller 方法中

java - 从路径中搜索并获取要执行的 jar

java - hibernate 与资源利用

c++ - 使用 C++ 堆栈/队列解析 XML 文件

opengl - OpenGL-为什么要删除矩阵堆栈,现在人们在使用什么?

java - 如何检测安卓手机是否有双后置摄像头

java - Picasso 图像加载后,Horizo​​ntalGridView/RecyclerView 滚动位置会重置

operating-system - 内核开发中使用的堆栈大小

C++ STL 堆栈问题 : Why does pop() not throw an exception if the stack is empty?