【问题标题】:Java generics and type synonymsJava 泛型和类型同义词
【发布时间】:2014-10-05 06:16:39
【问题描述】:

我正在考虑实现类似 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 generics types


    【解决方案1】:

    据我所知,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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多