0Pricing
Java Academy · Pelajaran

Metode/Kelas Generik

Definisikan kelas generik dengan parameter tipe dan tulis metode generik dengan <T> sebelum tipe kembalian. Pelajari kapan inferensi tipe membantu.

Metode/Kelas Generik adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 3 pelajaran total.

Ikhtisar

Kelas generik menggunakan kembali satu rancangan untuk banyak tipe, sedangkan metode generik bekerja dengan parameter tipe bahkan di dalam kelas non-generik. Kita akan membuat Pair<T,U> sederhana, metode swap, dan pabrik statis.

Mengapa kelas generik?

Mengapa kita membuat kelas menjadi generik?

  • Satu rancangan, banyak tipe: mengurangi pengulangan.
  • Keamanan tipe: tipe yang salah terdeteksi saat kompilasi.
  • API yang bersih: tidak ada konversi tipe pada nilai kembalian.

Kode: Pair&lt;T,U&gt;

Pair<T,U> menggunakan kelas yang sama dengan dua tipe berbeda. Konversi tipe tidak diperlukan, sehingga API-nya jelas.

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());
  }
}

Metode generik: tanda tangan

Metode generik bekerja terlepas dari apakah kelasnya generik. Tanda tangannya: <T> returnType... Contoh: <T> T firstOrDefault(T[] arr, T def).

Kode: swap generik

<T> didefinisikan pada tingkat metode, sehingga metode tersebut dapat bekerja dengan array yang berbeda. Saat memanggilnya, kita tidak menentukan tipe; kompilator menyimpulkannya.

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"));
    }
  }
}

Kode: pabrik generik statis

Pabrik generik statis: inferensi tipe dilakukan saat memanggil of(T v). Penggunaannya bersih dan mudah dibaca.

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());
  }
}

Pemeriksaan metode generik

Pemeriksaan singkat: Bagaimana cara mendeklarasikan metode generik dengan benar?

Ringkasan

Ringkasan: Kelas generik (Pair<T,U>) mengurangi pengulangan; metode generik (tanda tangan <T>) bekerja secara independen dari kelas. Inferensi tipe menyederhanakan pemanggilan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Metode/Kelas Generik” gratis?

Ya — teks lengkap “Metode/Kelas Generik” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Metode/Kelas Generik”?

Definisikan kelas generik dengan parameter tipe dan tulis metode generik dengan <T> sebelum tipe kembalian. Pelajari kapan inferensi tipe membantu. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Java Academy?

Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 3.

Berapa lama pelajaran “Metode/Kelas Generik” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?

Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Antarmuka dalam Praktik
  2. Dasar-Dasar Generik (T, Inferensi)
  3. Metode/Kelas Generik
← Kembali ke Java Academy