ジェネリクス(Generics)とは、データの型を柔軟に扱えるしくみのことです。

もしジェネリクスがなかったら…?

たとえば、Box という「データを保存するクラス」を作るとします。
以下のようにデータの型ごとにクラスを作るのは面倒ですね・・・

文字列(String)を保存する Box

class StringBox {
    private String value;

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

    public String get() {
        return value;
    }
}

数値(Integer)を保存する Box

class IntegerBox {
    private Integer value;

    public void set(Integer value) {
        this.value = value;
    }

    public Integer get() {
        return value;
    }
}

ジェネリクスを使うと?

  • T は仮の型が入る場所なので、使うときに決めることが出来る!

package gene;

public class Box<T> {
	private T value;

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

	public T get() {
		return value;
	}
}

ジェネリクスを使ってみよう!

Box<T>クラスを1つ作成してしまえば色々なデータ型に使いまわせるので便利!

package gene;

public class MainString {
	public static void main(String[] args) {
		//Stringのデータ
		Box<String> stringBox = new Box<>();
		stringBox.set("Hello, Generics!");
		System.out.println(stringBox.get()); // Hello, Generics!
		
		//Integerのデータ
		Box<Integer> intBox = new Box<>();
		intBox.set(100);
		System.out.println(intBox.get()); // 100
	}
}



Udemyで講座を公開中!

X(旧Twitter)

Youtube


いいなと思ったら応援しよう!

企業研修・MS-Office・オンラインスクールプログラミング講師が楽しく教えるスキルアップブログ♪
ありがとうございます!人間あきらめなければ何でも出来ます!一緒に頑張りましょう!