2010-09-28 104 views
6

对于CS类,我正在编写由教授创建的链接列表接口的链表实现。该任务要求我们使用泛型作为列表。我认为,我创造的东西很标准。Java泛型不兼容类型编译时错误

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; 

这个错误的我很迷茫。任何人都可以向我解释这个问题是什么?

回答

7

这可能是问题:

private class Node<T> { 

<T>造成额外的问题。因为Node是一个内部类,所以不需要再次声明其泛型类型。

你应该申报Node类象下面这样:

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

    ... 
} 
+0

问题解决了,谢谢! – objectivesea 2010-09-28 21:17:45

+0

@Hurpe,很乐意帮忙。 – jjnguy 2010-09-28 21:20:58