0Pricing
Java Academy · レッスン

ジェネリクスの基礎(T、型推論)

ジェネリック型パラメータ T 、それによってコンパイル時の安全性が得られる理由、diamond演算子による型推論を学びます。

「ジェネリクスの基礎(T、型推論)」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。

なぜジェネリクスなのか

ジェネリクスは、コンテナやユーティリティに型を追加するため、コンパイラーがコードを保護できます。利点:

  • 型安全性 — 型が意図せず混在しません。
  • キャスト不要 — よりすっきりしたコードになります。
  • 再利用可能 — 1つのクラスで多くの型に対応できます。

Tとは何か

T(型パラメーター)は、実際の型を表すプレースホルダーです。Box<String>と記述すると、コンパイラーはその使用箇所で T を String として扱います。

コード:Box<T>

Box<T>で T の代わりに String を指定すると、String だけを受け付けます。型が間違っているとコンパイル時エラーになり、実行時の予期せぬ問題は起こりません。

public class Main {
  // A tiny generic container
  static class Box<T> {
    private T value;
    void set(T v) { value = v; }
    T get() { return value; }
  }

  public static void main(String[] args) {
    Box<String> bs = new Box<String>(); // T becomes String
    bs.set("hello");
    System.out.println(bs.get());       // no cast needed

    // Box<Integer> bi = new Box<Integer>();
    // bi.set("oops"); // would not compile: String is not Integer
  }
}

コード:ダイヤモンド構文による型推論

<>(ダイヤモンド構文)を使うと、コンパイラーは右辺の型を推論します。左辺の型と互換性がなければコンパイルできないため、安全性が確保されます。

public class Main {
  static class Box<T> {
    private T value;
    Box() {}
    Box(T v) { value = v; }
    T get() { return value; }
  }

  public static void main(String[] args) {
    // Type on the left, diamond on the right — compiler infers T
    Box<Integer> a = new Box<>(123);
    Box<String> b = new Box<>("hi");

    System.out.println(a.get() + 1);    // 124
    System.out.println(b.get().toUpperCase());
  }
}

境界付き型パラメーター

型境界(Bounds):一部のジェネリックメソッドでは、Comparableのような機能が必要です。例:<T extends Comparable<T>>は、Tが比較可能でなければならないことを意味します。

コード:境界付きジェネリックメソッド

ジェネリックメソッド:<T extends Comparable<T>>。Integer と String は、どちらも Comparable を実装しているため使用できます。

public class Main {
  // Generic method: works for any Comparable type
  static <T extends Comparable<T>> T min(T a, T b) {
    return (a.compareTo(b) <= 0) ? a : b;
  }

  public static void main(String[] args) {
    System.out.println(min(3, 7));              // Integer
    System.out.println(min("apple", "banana")); // String (lexicographic)
  }
}

ジェネリクスの基礎チェック

クイックチェック:Box<String>のようなジェネリクスを使う主な利点は何ですか?

まとめ

まとめ:T はプレースホルダーで、ダイヤモンド構文によって型が推論されます。型境界(extends Comparable)によって、ジェネリックメソッドを安全で強力なものにできます。

よくある質問

「ジェネリクスの基礎(T、型推論)」レッスンは無料ですか?

はい。「ジェネリクスの基礎(T、型推論)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。

「ジェネリクスの基礎(T、型推論)」で何を学びますか?

ジェネリック型パラメータ T 、それによってコンパイル時の安全性が得られる理由、diamond演算子による型推論を学びます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。

「ジェネリクスの基礎(T、型推論)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 実践で使うインターフェース
  2. ジェネリクスの基礎(T、型推論)
  3. ジェネリックメソッドとジェネリッククラス
← Java Academyに戻る