【发布时间】:2016-12-02 10:47:32
【问题描述】:
在 Java 中,JDK 中的大多数(或全部?)泛型类都有一位数的泛型类型名称。比如HashMap的定义是这样的:
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
为什么这是惯例而不是像HashMap<KEY,VALUE> 这样更具描述性的类型名称?
【问题讨论】:
-
这个问题显然没有客观答案。
-
一个原因可能是避免冗长
-
当我在 Java 文件中找到像 KEY 或 VALUE 这样的标识符时,我的第一个想法是它们是常量……或者是名称不佳的类。另外,digit是数字,不是字符
-
添加到@Pablo 的评论中,如果我看到
Key和Value我会认为它们是实际的具体类。key和value不能很好地适应 Java 语言风格的其他约定,所以K和V对我来说似乎是最合理的选择 -
当 STL 第一次出现时,我看到它在 C++ 中是这样做的。我不需要 TYPE 而不是 T。我认为将它们拼出来不会增加价值或理解。