Java泛型不兼容类型编译时错误
问题描述:
对于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;
这个错误的我很迷茫。任何人都可以向我解释这个问题是什么?
答
这可能是问题:
private class Node<T> {
的<T>
造成额外的问题。因为Node
是一个内部类,所以不需要再次声明其泛型类型。
你应该申报Node
类象下面这样:
public class MyLinkedList<T> implements ADTListInterface {
...
private class Node {
Node head;
Node prev;
public Node(int max) {
...
}
问题解决了,谢谢! – objectivesea 2010-09-28 21:17:45
@Hurpe,很乐意帮忙。 – jjnguy 2010-09-28 21:20:58