爲什麼HashMap擴展AbstractMap並實現Map?擴展AbstractMap是不夠的,因爲AbstractMap實現了Map?Java.util.HashMap - 爲什麼HashMap擴展AbstractMap並實現Map?
11
A
回答
5
這是多餘的。我懷疑這是出於「文檔」的原因。 HashMap實現了Map,你可以依賴它。它擴展AbstractMap的事實可以說是一個實現細節。 (雖然未來版本的HashMap不太可能擴展AbstractMap,因爲可能有的一些代碼在那裏,希望HashMap可以分配給AbstractMap。)
0
它是多餘的,但並不傷害。如果他們不想在將來執行 AbstractMap
,它仍然可以工作。
+3
除了這是一個突破性的改變 - 某處某人將會完成「Map map = objectOfTypeAbstractMap」。 – 2010-02-19 08:26:56
0
還有一件事是AbstractMap是一個實現細節。它可能在Oracle JDK的未來版本中不存在。它可能在當前版本的IBM JDK中不存在。但是,無論它是否存在,HashMap都應始終符合List協議。因此,它明確地在類聲明中通過指定'HashMap implements Map'捕獲
相關問題
- 1. 爲什麼HashMap在擴展AbstractMap時實現Map?
- 2. Java:WeakHashMap爲什麼實現Map,而AbstractMap已經實現了它?
- 3. 爲什麼映射助手擴展hashmap會有用?爲什麼不使用hashmap?
- 4. 擴展MouseAdapter並實現ActionListener
- 5. Angular 4擴展並實現
- 6. Map實現爲什麼要覆蓋foreach?
- 7. Java上的跳過列表擴展AbstractMap
- 8. Grails params map as java.util.HashMap
- 9. 爲什麼策略模式使用實現而不是擴展?
- 10. 爲什麼一些集合擴展抽象也實現接口?
- 11. 爲什麼不擴展工具與實現?
- 12. 爲什麼Map不能擴展Collection接口
- 13. 擴展類並實現接口
- 14. 擴展類並實現接口
- 15. 爲什麼頁腳擴展?
- 16. 爲什麼擴展Exception類?
- 17. 爲什麼Node.js可擴展?
- 18. 爲什麼LinkedList作爲HashMap的存儲桶實現而不是另一個Hashmap?
- 19. 爲什麼HashSet的作爲HashMap的內部實現
- 20. 爲什麼std :: map實現爲紅黑樹?
- 21. 爲擴展綁定實現IEndpointBehavior
- 22. 在Groovy中擴展一個類並實現一個特性有什麼區別?
- 23. 爲什麼我的HashMap實現比JDK慢10倍?
- 24. 爲什麼HashSet實現中的HashMap瞬態?
- 25. 爲什麼要擴展JerseyTest vs擴展TestCase導致沒有測試被發現
- 26. 自定義擴展點的最佳實現是什麼
- 27. 有什麼辦法可以用proto3來實現擴展嗎?
- 28. 什麼是擴展實現中的Get/SetPropertyValue的名稱空間
- 29. 寫我自己的'TreeMap'類 - 什麼擴展和/或實現?
- 30. 實現AngularJS的Firefox擴展
基本上與此相同的問題: http://stackoverflow.com/questions/2165204/why-does-linkedhashsete-extend-hashsete-and-implement-sete - - 簡短版本:這種冗餘會對Javadoc的生成方式產生影響。 – 2010-02-19 17:29:53
我被刺激調查,實際上,Javadoc不是問題。新的簡短版本:這只是一個錯誤。 – 2010-02-19 17:41:50
heh。我今天也問過這個。我被告知這是一個「善意的錯誤」,並且最初的推理是我在答案中提到的接口與實現的關係。 – 2010-02-20 02:09:04