😽

【Java】ジェネリクス(Generics)とは?

2025/02/01に公開

ジェネリクス(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で講座を公開中!
https://zenn.dev/codek2/articles/e9e44f3e0023fb

X(旧Twitter)
https://twitter.com/kunchan2_

Zenn 本
https://zenn.dev/codek2?tab=books

Youtube
https://www.youtube.com/@codek2_studio

Discussion