2016-12-01 58 views
0

在java中,JDK中的大多数(或全部?)泛型类都有一位数的泛型类型名称。例如HashMap的定义是这样的:在java中使用单字符泛型类型名称的原因是什么?

public class HashMap<K,V> extends AbstractMap<K,V> 
implements Map<K,V>, Cloneable, Serializable { 

为什么这是惯例,而不是更具描述性的类型名称,如HashMap<KEY,VALUE>

+2

显然有没有客观的回答这个问题。 –

+0

一个原因可能是为了避免冗长 – developer

+3

第一,虽然我发现像Java文件中的键或值的标识符时,将是他们为常数...或类命名很差。此外,数字意味着数字,而不是字符 –

回答

3

我认为这里的要点是简单的约定。如果对类名称使用单字母来表示通用类型和多字母名称,那么显然你正在处理的是什么。另外,如果您在指定时使用了KEY或VALUE,则这些名称将看起来像常量名称。公约说:

UPPERCASE_AND_UNDERSCORE -> CONSTANTS 

UpperCamelCase -> ClassNames 

lowerCamelCase -> attributes 

T,S,V -> genericTypes 

退房the official documentation

类型参数命名惯例

按照惯例,类型参数名称是单一的,大写字母。这与你已经知道的变量命名约定形成鲜明对比,并且有很好的理由:如果没有这个约定,很难区分类型变量和普通类或接口名称之间的区别。

最常用的类型参数的名称是:

ë - 元素(由Java集合框架中广泛使用)

的K - 重点

N - 数

的T - 型

V值

S,U,V等 - 第2,第3,第4种

你会看到整个Java SE的API和本课的其余部分中使用这些名称。

相关问题