作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在考虑实现类似 interface Dto<K, V> extends Map<K, V> {}
的东西但我真正想表达的是Dto<K, V>
是 Map<K, V> {}
的类型同义词就像你可以在 Haskell 中做的那样 http://www.haskell.org/haskellwiki/Type_synonym提高代码的可读性。
这可以用Java表达还是直接用Map接口(interface)?
最佳答案
据我所知,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 .
关于Java 泛型和类型同义词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26200144/
我是一名优秀的程序员,十分优秀!