javaのジェネリックスでTとEの違いが良く分かりません。
参考書に
「E」は(Element:要素)
「T」は(Type:型)
と書いていますが、この二つの使い分けが良く分かりません。
「Eに入るのが要素なら、要素ってコレクションのオブジェクトことで…でもオブジェクトは型から作るからTで…どっちを使えばいいか分からない orz」
インターネットで調べると「T」はテンプレート?
と、こんがらがってます。プログラムに関して全くの素人で、基本的な考え方がしっかりしていないので、おかしいことを聞いてるのかもしれませんが、どなたかよろしければ回答お願いします。
No.3ベストアンサー
- 回答日時:
「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」
標準ライブラリでも、単純な概念に当てはまらない場合などは「T」としているようですが、「T」という名前は「これは型パラメータですよ」ということしか表現していません。他に適切な名前があれば、そちらにした方が良いでしょう。
ただし、ぱっと見て型パラメータである事が分かるという意味では「HOGE」などよりは良いです。
参考URL:http://www.javainthebox.net/laboratory/J2SE1.5/L …
>標準ライブラリでも、単純な概念に当てはまらない場合などは「T」としているようですが、「T」という名前は「これは型パラメータですよ」ということしか表現していません。他に適切な名前があれば、そちらにした方が良いでしょう。
そういうことだったんですね。モヤモヤがスッキリしました。教科書にもこういう風に書いていてもらいたいです。ありがとうございました。
No.2
- 回答日時:
ジェネリックスのAPIで
java.util.Comparator<T>
java.util.Enumeration<E>
java.util.Map<K,V>
といったものがありますけど、「T」「E」「K」「V」というのは単なる記号みたいなもので、どう表現してもいいのです。気にする必要はないです。
プログラムするときに
HashMap<String, Date> map = new HashMap<String, Date>();
このように具体的なクラス名に置き換えて使うのです。
回答ありがとうございます。資格試験の勉強していて「わからない所を無くさないといけない!ここはきっと重要な箇所だ」と思っていたのですが、気にする必要のないところでしたか(*´ω`*)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 子供 男性に必要で女性に不要なモノ(才能・能力・身体的機能など)は何だと思いますか? 3 2022/06/21 17:07
- 電車・路線・地下鉄 JR東日本が車掌にまでアルコール検査を実施している必要性がよく分からないです。 5 2022/08/10 21:35
- 生物学 今の科学でお酒の強さを遺伝子レベルで変えることはできますか? 3 2022/09/04 12:12
- 日本語 「酒が強い」・「酒が弱い」という日本語の使い方は間違っていると思います。 6 2022/06/14 18:27
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- 医学 お酒が強い人は麻酔の効果が効きずらいという話は本当ですか? 3 2022/04/01 16:33
- 統計学 数学の「確率」に詳しい人がいらっしゃいましたら教えてください。 2 2022/07/29 16:52
- 化学 分子をつくる物質と分子を作らない物質について。 なんとなく理解出来ているつもりではいるのですが、認識 1 2023/02/15 02:04
- アイドル・グラビアアイドル 政治家や60〜70代以降の男性が女性のことを卑下している人が多いのはどうしてですか? 3 2022/03/26 16:14
- 生活習慣・嗜好品 お酒が強い体質の人はアルコール依存症になりやすいという話は事実ですか? 5 2022/03/26 18:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java、又はjavascriptでマシン...
-
JSPファイルで生じるエラーをど...
-
同人ゲームについて
-
javaの堅牢性とは
-
データベースの形式を認識でき...
-
正規表現について質問です。 カ...
-
javaのジェネリックスでTとEの...
-
javaで大規模なPCゲームを作る...
-
Pure Javaとは?
-
JSP・サーブレットとphpどちら...
-
javaでの#if 0 #endif文
-
JAVA グローバル配列
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
VBAの「for i=1 to cells(…」...
-
データベースのデータをTextBox...
-
Javaでのエラーについて
-
使用しているJUnitのバージョン...
-
gitでバージョン指定してダウン...
-
OpenGLでの楕円の描き方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PythonやJavaScriptのように実...
-
JSPファイルで生じるエラーをど...
-
javaのジェネリックスでTとEの...
-
javaでの#if 0 #endif文
-
データベースの形式を認識でき...
-
正規表現について質問です。 カ...
-
ダブルコロンとアロー演算子
-
Pure Javaとは?
-
誕生日パラドックス
-
javaの堅牢性とは
-
while文を使ってのアプリケーシ...
-
Javascriptで出来ること
-
java と javaScript の違いはな...
-
サーブレットとPHPの違い
-
ラダーとjavascriptを勉強した...
-
java初心者なのですが、論理演...
-
正規表現で特定の単語を除外したい
-
C, C#, C++, Javaに関していく...
-
JAVAの特徴
-
VScodeのターミナルの文字化け...
おすすめ情報