看看LinkedHashMap的JDK源代码,我注意到这个类被声明为:
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {...
为什么冗余“实现Map< K,V>” (由于HashMap已经实现了Map)?我无法想象这是一个错字…
谢谢.
解决方法
我想这是一种说法
No matter what interfaces HashMap implements (now or in the future),this class should implement the Map interface.
如果负责HashMap的人员决定不再实施Map界面,那么编译器会警告LinkedHashMap的维护者,它不再按照他的意图实现Map界面.
当然,在这种特殊情况下,这是很愚蠢的(HashMap显然总是一个Map),但类似的情况可能会受益于(并已经产生)这样的约定.