dmz*_*z73 5 java generics types
我当时正在考虑实现类似的东西,interface Dto<K, V> extends Map<K, V> {}但是我真正想表达的是,它Dto<K, V>是一种类型同义词,Map<K, V> {}就像您可以在Haskell http://www.haskell.org/haskellwiki/Type_synonym中所做的那样,以提高代码的可读性。
是否可以用Java表示,还是应该直接使用Map接口?
据我所知,Java没有提供定义同义词的方法。
然而,泛型确实提供了一些同义词的表达能力。参数化类型(例如“V”)指示对象的类型。
Map<Sting, Dto> dtoMap = ...
Run Code Online (Sandbox Code Playgroud)
这显然是一张Sting->Dto的地图。
纯粹为了重命名而扩展内置类型的主题被一些人认为是反模式。尽管这是一个有争议的话题。请参阅: https: //softwareengineering.stackexchange.com/questions/246277/good-or-bad-practice-to-mask-java-collections-with-meaningful-class-names。