Javaのジェネリクス型の使い方

Javaのジェネリクス型の使い方

Java1.5からジェネリクスという仕組みができました。

以下はジェネリクス定義を使用したSample2クラスの例です。StringでもIntegerでも渡せるようになっています。

public class Sample1 {

  public static void main(String[] args) {

    Sample2<String> test1 = new Sample2<String>("aaa");
    System.out.println(test1.get());
    Sample2<Integer> test2 = new Sample2<Integer>(34);
    System.out.println(test2.get());
  }
}
// ジェネリクス
class Sample2<T>{
  private T name;

  Sample2(T name){
    this.name = name;
  }

  public T get(){
    return name;
  }
}

クラス名の後に<T>というように書きます。TはSでもなんでもいいですが、慣例でTと書くようです。

Tはどのクラスでも可能なので、StringもIntegerも可能になります。

継承したクラスをジェネリクスの型に指定してみます。

public class Sample1 {
  public static void main(String[] args) {
    Sample3<Child> t = new Sample3<Child>();
    Child child = new Child();
    child.str = "aiueo";
    t.set(child);
    System.out.println(t.get().str);
  }
}
class Sample3<T>{
  private T name;

  Sample3(){}

  public T get(){
    return name;
  }

  public void set(T name){
    this.name = name;
  }
}
// サブクラス
class Parent{
  public String str;
}
// 親クラス
class Child extends Parent{}

結果は以下のようになります。

aiueo

コメント

タイトルとURLをコピーしました