我似乎无法理解为什么我认为这些是不兼容的类型,它只是bc他们在不同的班级?我只是不明白为什么。
public class PrependLinearListImpl<T>{
private Node<T> first;
private class Node<T> {
private T head;
private Node<T> tail;
Node(T head) {
this.head = head;
this.tail = first;
first = this;
}
}
}
答案 0 :(得分:4)
这是因为PrependLinearListImpl<T>.Node
已经从其外部类继承了泛型参数。没有必要重新定义通用组件。
以下内容应该按原样运行:
public class PrependLinearListImpl<T>{
private Node first;
private class Node {
private T head;
private Node tail;
Node(T head) {
this.head = head;
this.tail = first;
first = this;
}
}
}
如果Node
为static
,则需要提供自己的通用参数。