在Java中,JDK中的大多数(或所有?)通用类都具有个位数的通用类型名称。例如HashMap,的定义如下所示:
public class HashMap<K,V> extends AbstractMap<K,V>
implements Map<K,V>, Cloneable, Serializable {
Run Code Online (Sandbox Code Playgroud)
为什么这是约定而不是更具描述性的类型名称HashMap<KEY,VALUE>?
我认为这里的重点是简单约定。如果将单个字母用于泛型类型,将多个字母名称用于类名称,那么显然您要处理的是什么。另外,如果您直接使用KEY或VALUE,这些名称将看起来像常量名称。公约说:
UPPERCASE_AND_UNDERSCORE -> CONSTANTS
UpperCamelCase -> ClassNames
lowerCamelCase -> attributes
T,S,V -> genericTypes
Run Code Online (Sandbox Code Playgroud)
查看 官方文档
类型参数命名约定
按照约定,类型参数名称是单个大写字母。这与您已经知道的变量命名约定形成了鲜明的对比,并且有充分的理由:如果没有该约定,将很难分辨类型变量与普通类或接口名称之间的区别。
最常用的类型参数名称为:
E-元素(由Java Collections Framework广泛使用)
K键
N-号码
T型
V-值
S,U,V等-第二,第三,第四类型
您将看到在Java SE API以及本课程其余部分中使用的这些名称。
| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |