2016-12-01 1 views
0

JDKのほとんどの(またはすべて?)ジェネリッククラスには、1桁のジェネリックタイプ名があります。たとえばHashMapの定義は次のようになります。Javaで1文字の汎用タイプ名を使用する理由は何ですか?

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

なぜこれが代わりにHashMap<KEY,VALUE>のようなより説明型名の慣習ですか?

+2

明らかにこの質問に対する客観的な回答はありません。 –

+0

冗長性を避ける理由の1つ – developer

+3

JavaファイルでKEYやVALUEのような識別子を見つけるのは、それらが定数...またはクラス名が悪いということです。さらに、数字は文字ではなく数字であることを意味します。 –

答えて

3

ここのポイントは簡単な慣習だと思います。ジェネリック型の一文字とクラス名の複数文字名を使用すると、あなたが扱っていることが明らかになります。また、KEYまたはVALUEを使用すると、これらの名前は定数名のように見えます。条約は言う:

UPPERCASE_AND_UNDERSCORE -> CONSTANTS 

UpperCamelCase -> ClassNames 

lowerCamelCase -> attributes 

T,S,V -> genericTypes 

チェックアウトthe official documentation

型パラメータの命名規則慣例により

、型パラメータ名は、大文字シングルです。このことは、あなたがすでに知っている変数命名規則とはまったく対照的であり、正当な理由があります。この規則なしでは、型変数と通常のクラスまたはインタフェース名の違いを知ることは難しいでしょう。

最も一般的に使用されるタイプのパラメータ名は次のとおりです。

E - エレメント(Javaコレクション・フレームワークで広く使用)

K -

Nキー - 数

T - タイプ

V - 値

S、U、Vなど - 第2、第3、第4のタイプ

これらの名前は、Java SE APIおよびこのレッスンの残りの部分で使用されています。

関連する問題