我正在考虑实施interface Dto<K, V> extends Map<K, V> {}
之类的内容,但我真正想要表达的是Dto<K, V>
是Map<K, V> {}
的类型同义词,就像你在Haskell http://www.haskell.org/haskellwiki/Type_synonym中所做的那样提高代码的可读性。
这可以用Java表达,还是应该直接使用Map接口?
答案 0 :(得分:4)
据我所知,Java无法定义同义词。
然而,泛型确实提供了同义词的一些表现力。参数化类型(例如&#34; V&#34;)表示对象的类型。
Map<Sting, Dto> dtoMap = ...
这显然是Sting-&gt; Dto的地图。
一些纯粹用于重命名的扩展内置类型的主题被一些人视为反模式。虽然这是一个有争议的话题。请参阅:https://softwareengineering.stackexchange.com/questions/246277/good-or-bad-practice-to-mask-java-collections-with-meaningful-class-names。