😽
【Java】ジェネリクス(Generics)とは?
ジェネリクス(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)
Zenn 本
Youtube
Discussion