[英]Map.Entry next method?
我正在查看JDK 7的源代码-特别是WeakHashMap.java,该代码得到了广泛使用:
Entry<K,V> p = prev;
Entry<K,V> next = p.next;
但是接下来不是在Map.Entry上定义的方法(据我所知? http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html )
从此调用此方法的位置是哪里?
WeakHashMap
不是引用Map.Entry
,而是引用它自己的Map.Entry
接口内部实现 ,即一个名为Entry
的类。 该类具有一个名为next
的字段,可以访问该字段。
next
不是功能。 它是直接访问的类的成员变量。 通常,您会看到此信息(使用OO代码)
public class Foo
{
String bar;
public String getBar()
{
return this.bar;
}
}
您看到的.next
语法通常被称为直接成员访问,通常会被皱眉。
它是WeakHashMap内部的内部类,其中包含对Entry的引用。
private static class Entry<K,V> extends WeakReference<Object> implements Map.Entry<K,V>{
V value;
final int hash;
Entry<K,V> next;
Entry(Object key, V value, ReferenceQueue<Object> queue, int hash, Entry<K,V> next) {
super(key, queue);
this.value = value;
this.hash = hash;
this.next = next;
// omit others...
}
在第682行中查看源代码: http : //grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/WeakHashMap.java#WeakHashMap.Entry
对于HashMap,这是同一件事。 它具有相似的内部类:
static class Entry<K, V> implements Map.Entry<K, V>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.