【问题标题】:Java Generics 'Incompatible Type' Compile-Time ErrorJava 泛型“不兼容类型”编译时错误
【发布时间】:2011-04-18 12:51:48
【问题描述】:

对于 CS 课程,我正在编写由我的教授创建的链表接口的链表实现。分配要求我们对列表使用泛型。我认为我创造的东西是相当标准的。

public class MyLinkedList<T> implements ADTListInterface {
    ...
    private class Node<T> {
        Node<T> head;
        Node<T> prev;
        public Node(int max) {

        ...

        }

        public void shift() {
            ...
            Node<T> newNode = new Node<T>(this.max);
            newNode.prev = head.prev;
            ...
        }

    }

    ...

}

在编译时会产生以下错误:

MyLinkedList.java:111: incompatible types
   found   : MyLinkedList<T>.Node<T>
   required: MyLinkedList<T>.Node<T>
newNode.prev = head.prev;

这个错误让我很困惑。谁能给我解释一下是什么问题?

【问题讨论】:

    标签: java generics inner-classes


    【解决方案1】:

    这可能是问题所在:

    private class Node<T> {
    

    &lt;T&gt; 引起了额外的问题。因为Node是一个内部类,所以不需要再声明它的泛型。

    您应该像下面这样声明Node 类:

    public class MyLinkedList<T> implements ADTListInterface {
    ...
    private class Node {
        Node head;
        Node prev;
        public Node(int max) {
    
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      相关资源
      最近更新 更多