「T」「E」などの型パラメータ名は、コンピュータにとっては何であっても違いは有りません。変数名などと同様です。(もちろん「for」などの予約語は使えませんが。) 動作さえすれば良いのであれば、「HOGE」などでもかまいません。 例) public <HOGE> HOGE name(HOGE h) { ・・・・・ } ですが、「HOGE」などでは書いた人の意図が分からず、プログラムが理解しづらくなります。 ですので、(未来の自分も含めた)そのプログラムを読む人が分かりやすいようなものにするのが定石です。 標準ライブラリで例を挙げると、下記の様になっています。 ・ java.util.Collection<E> の場合は要素(Element)の型を指定するので「E」 ・ java.util.Map<K,V> の場合はキー(Key)と値(Value)の型を指定するので「K」「V」 標準ライブラリ