4
我正在考慮實施類似interface Dto<K, V> extends Map<K, V> {}
但是我真正想表達的是,Dto<K, V>
是Map<K, V> {}
一種代名詞一樣,你可以在Haskell http://www.haskell.org/haskellwiki/Type_synonym做,以改善代碼的可讀性。Java泛型和類型同義詞
這是可能用Java表達或者我應該直接使用Map接口嗎?
我正在考慮實施類似interface Dto<K, V> extends Map<K, V> {}
但是我真正想表達的是,Dto<K, V>
是Map<K, V> {}
一種代名詞一樣,你可以在Haskell http://www.haskell.org/haskellwiki/Type_synonym做,以改善代碼的可讀性。Java泛型和類型同義詞
這是可能用Java表達或者我應該直接使用Map接口嗎?
據我所知,Java沒有提供定義同義詞的方法。然而,泛型卻提供了一些同義詞的表達性。參數化類型(例如「V」)表示對象的類型。
Map<Sting, Dto> dtoMap = ...
這顯然是Sting-> Dto的地圖。
純粹爲了重命名而擴展內置類型的主題被一些人認爲是反模式。雖然這是一個有爭議的話題。參見:https://softwareengineering.stackexchange.com/questions/246277/good-or-bad-practice-to-mask-java-collections-with-meaningful-class-names。
是的,現在我看到這是一個反模式:http://www.ibm.com/developerworks/java/library/j-jtp02216/index.html – dmz73 2014-10-05 07:49:26