talosのプログラミング教室

Java Gold合格への道 ~ジェネリック・クラス~

スポンサーリンク

こんにちは。たろすです。

今回はジェネリック・クラスについて説明します。

ジェネリック・クラスとは


以下のような型パラメータ(<T>)がクラス名の後に記述されたクラスをジェネリック・クラスと呼びます。

class X<T> {}

ジェネリック・クラスの決まり

ジェネリック・クラスには以下のコードを記述することができません。

// 型変数によるインスタンス生成
T obj = new T();
// 型変数を要素に指定する配列の生成
T[] array = new T[3];
// static修飾子付きの型変数
static T t;
// 型変数に対する.classの参照
void doIt() {
  Class<T> class = T.class;
}
// instanceof演算子による型の判定
void doIt(T t) {
  if (t instanceof T) {}
}

ジェネリック・クラスの使いどころ

public class X<T> {
	private T t;

	public void set(T t) {
		this.t = t;
	}

	public T get() {
		return t;
	}
}

このクラスは任意の型の変数を1つだけ格納し、get()で取得することができます。

例えば以下のようなクラスの場合String型しか格納できませんが、上記のジェネリック・クラスではInteger型でも自作クラスでもなんでも格納できます。

public class Y {
	private String s;

	public void set(String s) {
		this.s = s;
	}

	public String get() {
		return s;
	}
}

おわりに

今回はジェネリック・クラスについて説明しました。