该实现使
Entry<K,V>类型为对象的数组
static class Entry<K,V> implements Map.Entry<K,V>
而不提供通用类型参数(source)。这是允许的,但是要理解编译器不再保证类型安全。例如,在代码的其他地方,您可以编写
Entry<K,V> e = table[bucketIndex];
编译器将允许您执行此操作。如果您确定始终将的元素设置
table[]为
null或
Entry<K,V>,则可以知道分配是正确的。
这样做没有问题的原因是Java中的泛型类型是通过类型擦除实现的,即
Entry<K,V>对象
Entry<Integer,Integer>和之间在运行时没有区别
Entry<String,Long>。



