栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

泛型类型参数的T,U,V约定从何而来?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

泛型类型参数的T,U,V约定从何而来?

在标准Java SE API中,设计人员通常选择一个与类型参数的含义/目的有关的单字母标识符:

  • Iterator<T>
    - 的Javadoc其中
    T
    装置键入。其他例子是
    ListIterator<T>
    Iterable<T>
    Comparable<T>
    Comparator<T>
    Class<T>
  • Collection<E>
    - 的Javadoc其中
    E
    装置元件。使用其他各种收集类和接口
    E
  • Map<K,V>
    - 的javadoc哪里
    K
    手段键,
    V
    手段的价值。
  • Enum<E>
    - 的javadoc哪里
    E
    手段枚举。

这些往往反驳你的断言,有一个一般的(普遍)

T
U
V
约定,至少为Java。显然,在没有具体指导的情况下,一些个体设计师将采用明显的指导扩展
T
(请参阅下面的链接),但这似乎是个体选择的结果。(这些团体可能会认为这不值得讨论。)

(如果要进行详尽搜索,请访问每个javadocs索引AZ页,然后在其中搜索所有出现的“ <”。)


我希望链接到最初讨论该约定的旧讨论/提交/邮件列表。

对于Java,我怀疑您会发现这一点。讨论和邮件列表将是私有的,并且在将泛型以及上述所有示例添加到Java语言后,Java源代码仍然关闭。


@Lew布洛赫已经发现了几个例子(见下文)的

T
U
V
在加入到Java SE中的Java
8作为流支持的一部分的API。我断言这并不能证明是一种通用模式,并且大量先前存在的类都不能证明这一点。

一般模式或惯例的其他负面证据:

  • http://cr.openjdk.java.net/~alundblad/styleguide/index-v6.html#toc-type-variables中没有提及
    U
    V
  • http://docs.oracle.com/javase/tutorial/java/generics/types.html其中建议使用的
    S
    U
    V
    作为第二,第三和第四类型参数。(不
    U
    V
    W
    …)

最后,JLS(JLS
6.1
)建议:

类型变量名称应精简(如果可能,应使用单个字符),但应令人回味,并且不应包含小写字母。这使得区分类型参数与普通类和接口变得容易。

容器类型应使用名称

E
作为其元素类型。映射应使用
K
其键
V
的类型和其值的类型。该名称
X
应用于任意异常类型。
T
每当类型没有更具体的区别时,我们都会使用type。(在通用方法中通常是这种情况。)

如果有多个表示任意类型的类型参数, 则应使用

T
在字母表中相邻的字母,例如
S
或者,
可以使用数字下标(例如
T1
T2
来区分不同类型的变量。在这种情况下,所有带相同前缀的变量都应下标。

总之,

U
V
没有明确的提到JLS,但其他的替代品。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/570789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号