什么是HashTable中的静态内部类条目用于?

时间:2012-05-24 08:55:09

标签: java static hashtable

  

可能重复:
  Static nested class in Java, why?

我正在JDK HashTable中阅读源代码,并且有一些代码片段如下:

/ ** Hashtable碰撞列表。 * /

private static class Entry<K,V> implements Map.Entry<K,V> {
    int hash;
    K key;
    V value;
    Entry<K,V> next;
    ...
} //end of Entry<K,V>

我知道这里的Entry是一个私有内部类,但它也是一个定义的静态类; 我担心的是,将它定义为私人内部类是不够的?这里将它定义为静态类的主要用途是什么?

非常感谢任何指南或回复。

1 个答案:

答案 0 :(得分:3)

它是static,因此它的实例不包含对外部类的包含实例的引用。

Map.Entry用于迭代地图的元素。它不必具有对包含映射的引用,因为它不需要访问映射的私有字段。因此声明它是非静态的只会消耗额外的空间并削弱封装。