2016-12-01 90 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和本課的其餘部分中使用這些名稱。

相關問題