爲什麼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會有用?爲什麼不使用hashmap?
- 2. Angular 4擴展並實現
- 3. Java上的跳過列表擴展AbstractMap
- 4. 爲什麼Map不能擴展Collection接口
- 5. 擴展類並實現接口
- 6. 擴展類並實現接口
- 7. 爲什麼HashSet的作爲HashMap的內部實現
- 8. 爲什麼std :: map實現爲紅黑樹?
- 9. 爲擴展綁定實現IEndpointBehavior
- 10. 爲什麼我的HashMap實現比JDK慢10倍?
- 11. 爲什麼HashSet實現中的HashMap瞬態?
- 12. 爲什麼要擴展JerseyTest vs擴展TestCase導致沒有測試被發現
- 13. 自定義擴展點的最佳實現是什麼
- 14. 什麼是擴展實現中的Get/SetPropertyValue的名稱空間
- 15. myActivity擴展GridView實現OnClickListener
- 16. 擴展和實現接口
- 17. SAPUI5 - 擴展sap.ui.controller實現
- 18. 實現一個@ html.myTelerikGrid擴展
- 19. 實現泛型擴展
- 20. 擴展PackageManager實現SharedPreferences
- 21. 擴展HttpServlet實現ServletContextListener
- 22. 爲什麼Scala不可變的HashMap方法返回一個Map?
- 23. 爲什麼C++ STL使用RBtree來實現「std :: map」?
- 24. 爲什麼Android org.json。*不實現Map接口?
- 25. 爲什麼scala Map沒有實現無法應用?
- 26. 爲什麼作爲擴展方法
- 27. std :: map擴展初始化器列表是什麼樣的?
- 28. 擴展接口的方法爲什麼在實現擴展接口的類中不可見?
- 29. java.util.HashMap和HashSet的內部實現
- 30. 爲什麼要實現已經相互擴展的兩個接口?
基本上與此相同的問題: 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