在java.util.Map(如下所示),类型参数<K, V>的Entry超过遮蔽类型参数<K, V>的Map.
interface Map<K,V> {
......
interface Entry<K,V> {
.....
}
}
Run Code Online (Sandbox Code Playgroud)
class DblyLinkList从这里有以下内部类DListNode,不需要黯然失色的类型参数T.
public class DblyLinkList<T> implements Iterable<T> {
.......
class DListNode {
private T item;
private DListNode prev;
private DListNode next;
DListNode(T item, DListNode p, DListNode n) {
this.item = item;
this.prev = p;
this.next = n;
}
}
......
}
Run Code Online (Sandbox Code Playgroud)
你能帮我理解一下阴影类型参数的原因Map吗?
在类或接口内定义的接口是静态的,这意味着它们无法访问其父类的泛型参数.所以Entry需要K和V它的父母一起.
相比之下,它DListNode是一个内部类,DblyLinkList<T>因此可以访问泛型类型T- 它实际上也包含一个返回其包含类的引用.
注意,如果DListNode定义为static class(我将如何定义它),它将不再是内部类,因此无法访问其父类通用参数 - 因此也需要DListNode<K,V>.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |