0Pricing
Java Academy · Lektion

Generische Methoden/Klassen

Definieren Sie generische Klassen mit Typparametern und schreiben Sie generische Methoden mit <T> vor dem Rückgabetyp. Lernen Sie, wann Typinferenz hilfreich ist.

Generische Methoden/Klassen ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.

Überblick

Generische Klassen verwenden einen Entwurf für viele Typen wieder, und generische Methoden arbeiten mit Typparametern, auch innerhalb nicht generischer Klassen. Wir erstellen ein kleines Pair<T,U>, eine swap-Methode und eine statische Factory.

Warum generische Klassen?

Warum machen wir eine Klasse generisch?

  • Ein Entwurf, viele Typen: reduziert Wiederholungen.
  • Typsicherheit: falsche Typen werden beim Kompilieren erkannt.
  • Saubere API: keine Casts bei Rückgabewerten.

Code: Pair<T,U>

Pair<T,U> verwendet dieselbe Klasse mit zwei unterschiedlichen Typen. Casts sind nicht erforderlich, die API ist eindeutig.

public class Main {
  // Simple generic data holder with two type parameters
  static class Pair<T, U> {
    private final T first;
    private final U second;
    Pair(T first, U second) { this.first = first; this.second = second; }
    T first() { return first; }
    U second() { return second; }
    public String toString() { return "Pair(" + first + ", " + second + ")"; }
  }

  public static void main(String[] args) {
    Pair<String, Integer> p = new Pair<>("age", 21);
    System.out.println(p);
    System.out.println(p.first() + " -> " + p.second());
  }
}

Generische Methoden: Signatur

Generische Methoden funktionieren unabhängig davon, ob die Klasse generisch ist. Signatur: <T> returnType... Beispiel: <T> T firstOrDefault(T[] arr, T def).

Code: generisches swap

<T> wird auf Methodenebene definiert; dadurch funktioniert die Methode mit unterschiedlichen Arrays. Beim Aufruf haben wir den Typ nicht angegeben, der Compiler hat ihn hergeleitet.

public class Main {
  // Generic utility method: swap two indices of an array of any reference type
  static <T> void swap(T[] arr, int i, int j) {
    T tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp;
  }

  public static void main(String[] args) {
    String[] names = { "Ada", "Bob", "Cyd" };
    swap(names, 0, 2); // works with String[]
    for (int k = 0; k < names.length; k = k + 1) {
      System.out.print(names[k] + (k < names.length - 1 ? " " : "\n"));
    }
  }
}

Code: statische generische Factory

Statische generische Factory: Beim Aufruf von of(T v) wird der Typ hergeleitet. Die Verwendung ist sauber und gut lesbar.

public class Main {
  static class Box<T> {
    private final T value;
    private Box(T v) { this.value = v; }
    public T get() { return value; }
    // Static generic factory method inside a generic class
    public static <T> Box<T> of(T v) { return new Box<T>(v); }
  }

  public static void main(String[] args) {
    // Type inferred by diamond and method generic parameter
    Box<Integer> bi = Box.of(42);
    Box<String> bs = Box.of("hi");
    System.out.println(bi.get() + 1);
    System.out.println(bs.get().toUpperCase());
  }
}

Check zu generischen Methoden

Kurzer Check: Wie deklarieren Sie eine generische Methode korrekt?

Zusammenfassung

Zusammenfassung: Generische Klassen (Pair<T,U>) reduzieren Wiederholungen; generische Methoden (Signatur mit <T>) funktionieren unabhängig von der Klasse. Die Typinferenz vereinfacht Aufrufe.

Häufig gestellte Fragen

Ist die Lektion „Generische Methoden/Klassen“ kostenlos?

Ja — der vollständige Text von „Generische Methoden/Klassen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Generische Methoden/Klassen“?

Definieren Sie generische Klassen mit Typparametern und schreiben Sie generische Methoden mit <T> vor dem Rückgabetyp. Lernen Sie, wann Typinferenz hilfreich ist. Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Generische Methoden/Klassen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Schnittstellen in der Praxis
  2. Grundlagen von Generics (T, Inferenz)
  3. Generische Methoden/Klassen
← Zurück zu Java Academy