簡體   English   中英

返回LinkedHashMap的方法的簽名<K,V>

[英]Signature of method that returns a LinkedHashMap<K,V>

考慮我要方法foo返回LinkedHashMap (數據按插入順序排序)。 原因是該Map將由數據庫填充,並且我希望它反映查詢返回的順序。 定義方法簽名的正確方法是什么?

  1. public LinkedHashMap<String, String> foo()
  2. public Map<String, String> foo()

第一個優點是可以向客戶宣傳已訂購地圖,而第二個則更為通用。

絕對是第二個-您應該更喜歡接口並隱藏實現-如果將來您決定使用Map另一個實現,則無需使用此代碼來更改另一個方法中的任何內容

還要注意,不允許通過返回類型重載方法,因此使用常規類型似乎是合適的

這取決於如何使用/專業化此方法。 但是,我推薦第二種方法。

考慮一種需要重寫此方法以返回排序值(即TreeMap )或未排序/無序值( HashMap )的場景。 在這種情況下,我們將無法override此方法,而必須創建另一個方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM