Java

Java ジェネリクスクラス

投稿日:

こちらを読むと

  • Javaのジェネリクス クラスの定義方法、使用例が分かります。

ジェネリクスとは

ジェネリクスとは”一般的”という意味で、IntegerやStringなど特定の型を扱うのではなく、それらを抽象化して一般的な型として扱える仕組みです。

馴染み深いのは、Listなどのコレクションです。
よくList<String>のように記載して、Stringを扱うListを作りますが、<>の中の型は何でもよい(一般的)であるわけです。

言葉で説明していても分かりづらいので、さっそく具体例を見てみましょう。

ジェネリクス クラス

以下のコードは、ジェネリクス クラスの例です。
(プログラミング言語Java 第4版より)

こちらのクラスでは、<E>という記号を用いて、クラス内で扱える型を抽象化しています。

Listなどのコレクションと同様、<E>に任意の型を入れることができます。

例えば、Stringを保持するCellは、以下のように生成して参照できます。
(プログラミング言語Java 第4版より)

もちろん、String以外の型を扱うこともできます。

Objectクラスで扱えばよいのでは?

ここで、一つ疑問が出てきます。
JavaにはObjectクラスという、全クラスのSuperクラスがありますよね。ジェネリクスを使わなくても、Objectクラスで扱えばよいのでは?

Objectクラスで扱うと、いろいろ問題が出てきます。
こちらの話は、次回の記事で書こうと思います。

まとめ

  • Javaのジェネリクス クラスの定義方法、使用例が分かりました。

ジェネリクス、慣れないと使いづらいのですが、慣れてしまえば便利な仕組みなので、ぜひ押さえておきましょう!

Reference

https://qiita.com/rodentia/items/b36d134fa24867ba4d63

こちらの書籍は、Javaの仕様が網羅的に書かれています。参照的に使うと効果的です!



-Java

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

staticファクトリメソッドの利点[Java]

Table of Contents こちらを読むと結論staticファクトリメソッドとはstaticファクトリメソッドの例staticファクトリメソッドの利点1.名前をつけることができる2.オブジェク …

Dependency Injection(DI) パターン

Table of Contents こちらを読むと結論Dependency Injection(DI)とはDIではない例DIを使わないと修正範囲が大きくなるDIの例DI考察まとめReference こ …

Java コンストラクタをprivateにするとき

Table of Contents こちらを読むと結論コンストラクタおさらいコンストラクタは通常はpublicprivateコンストラクタとはインスタンスを生成する必要がないケース生成できるインスタン …