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