[英]Signature of method that returns a LinkedHashMap<K,V>
考慮我要方法foo
返回LinkedHashMap
(數據按插入順序排序)。 原因是該Map
將由數據庫填充,並且我希望它反映查詢返回的順序。 定義方法簽名的正確方法是什么?
public LinkedHashMap<String, String> foo()
public Map<String, String> foo()
第一個優點是可以向客戶宣傳已訂購地圖,而第二個則更為通用。
絕對是第二個-您應該更喜歡接口並隱藏實現-如果將來您決定使用Map
另一個實現,則無需使用此代碼來更改另一個方法中的任何內容
還要注意,不允許通過返回類型重載方法,因此使用常規類型似乎是合適的
這取決於如何使用/專業化此方法。 但是,我推薦第二種方法。
考慮一種需要重寫此方法以返回排序值(即TreeMap
)或未排序/無序值( HashMap
)的場景。 在這種情況下,我們將無法override
此方法,而必須創建另一個方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.