ジェネリクス(総称型)について その2
Javaプログラムにおいて,型パラメータを持つクラスを定義してみました
package com.mrstar.practice_generics; public class GenericSample<T> { private T mValue; public GenericSample(T value) { mValue = value; } public T getValue() { return mValue; } public void setValue(T value) { mValue = value; } }
使ってみました。
GenericSample<Sample> sample0 = new GenericSample<Sample>(new Sample()); Sample value = sample0.getValue(); sample0.setValue(new Sample()); // sample0.setValue("hello"); コンパイルエラー GenericSample<String> sample1 = new GenericSample<String>("Hello Generics."); String value1 = sample1.getValue(); sample1.setValue("Hello World."); // sample1.setValue(1); コンパイルエラー
使い方はこんな感じです。 次に,static メソッドの型パラメータを持つメソッドを定義して使ってみました。
package com.mrstar.practice_generics; public class GenericStaticSample { public static <T> T staticFunction(T value) { return value; } }
呼び出してみます。
Sample sample0 = GenericStaticSample.staticFunction(new Sample()); Sample sample1 = GenericStaticSample.<Sample>staticFunction(new Sample());
下の呼び方は知りませんでした。 型パラメータを指定して呼び出すこともできるんですね。