ジェネリックはなぜジェネリックと呼ばれるのですか? 質問する

ジェネリックはなぜジェネリックと呼ばれるのですか? 質問する

村の馬鹿者になるリスクを冒して、誰かジェネリックがジェネリックと呼ばれる理由を説明してくれませんか?その使用法と利点は理解していますが、ジェネリックの定義は「汎用」であり、汎用コレクションは型安全である場合、なぜこれは誤った名称ではないのでしょうか?

たとえば、ArrayList にはオブジェクトであれば何でも格納できます。

ArrayList myObjects = new ArrayList();
myObjects.Add("one");
myObjects.Add(1);

一方、文字列型のジェネリックコレクションは文字列のみを保持できます。

var myStrings = new List<string>();
myStrings.Add("one");
myStrings.Add("1");

なぜ「ジェネリック」と呼ばれるのかよく分かりません。答えが「...クラスやメソッドがクライアントコードによって宣言されインスタンス化されるまで、1つ以上の型の指定を延期するクラスやメソッドを設計できるようにする」であるならば、ここなら、それは理にかなっていると思います。おそらく、Java でジェネリックが導入された後にプログラミングを始めたので、ジェネリック以前のことを思い出せないため、このような精神的な過失があるのでしょう。しかし、それでも...

どのような助けでも大歓迎です。

ベストアンサー1

「汎用」とは実装のことです。使用するタイプごとに特定の実装を記述するのではなく、任意のタイプで機能する単一の「汎用」リスト実装を記述します。

おすすめ記事