Java学習 ジェネリクスの<T>について

引き続きジェネリクスについて学んでいきます。
部屋の気温が6度しかなく、部屋の中で吐く息が白くなっていますが、まあ勉強に支障はないので大丈夫でしょう。

前回はList<String> listみたいな形でジェネリクスを扱っていました。
しかし、この<String>はいったいどういった動作をしているのかというところを学びました。


public class show<T> {

	private T val;

	public T getVal() {
		return val;
	}

	public void setVal(T val) {
		this.val = val;
	}
	
}

サンプルコードを写経してみました。

<T>は実は<penguin>でも<kawauso>でも<SuoSangoVeryCute>でも何でもよいらしいです。慣習的にTypeの頭文字のTが使われているそうです。

SuoSangoVeryCuteでもコンパイルエラーは出ない

今まで<T>を魔法の言葉だと思っていましたが、<>で囲っている文字や文字列は型パラメータを受け取る引数のような役割を果たしているようです。

次に、この<T>が型パラメータを受け取って、適用されるタイミングです。

インスタンス生成時に置き換えられる

インスタンス生成時に<T>のように指定された文字列が、渡された<String>
等の型パラメータと置き換わっているようです。

このようにしてListなどで使われているジェネリクスは作用している、ということが大変勉強になりました。

また、今後はドキュメントを見ても<T>??とはならず、あ~ジェネリクス使うようなものなのね、と理解できそうです。

先生の動画もまだまだ続きますので、ジェネリクスについてもう少し深めていけたらと思います。



この記事が気に入ったらサポートをしてみませんか?