obj*_*sea 6 java generics inner-classes
对于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;
...
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
在编译时生成以下错误:
MyLinkedList.java:111: incompatible types
found : MyLinkedList<T>.Node<T>
required: MyLinkedList<T>.Node<T>
newNode.prev = head.prev;
Run Code Online (Sandbox Code Playgroud)
这个错误让我非常困惑.任何人都可以向我解释问题是什么?
这可能是问题所在:
private class Node<T> {
Run Code Online (Sandbox Code Playgroud)
这<T>引起了额外的问题.因为Node是内部类,所以不需要再次声明其泛型类型.
您应该声明Node如下所示的类:
public class MyLinkedList<T> implements ADTListInterface {
...
private class Node {
Node head;
Node prev;
public Node(int max) {
...
}
Run Code Online (Sandbox Code Playgroud)