0Pricing
Java Academy · Pelajaran

Dasar-Dasar Generik (T, Inferensi)

Pelajari parameter tipe generik T , alasan parameter ini memberikan keamanan saat kompilasi, dan cara operator diamond melakukan inferensi tipe.

Dasar-Dasar Generik (T, Inferensi) adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Mengapa tipe generik?

Tipe generik menambahkan tipe ke wadah dan utilitas sehingga kompilator dapat melindungi Anda. Manfaatnya:

  • Keamanan tipe — tidak ada pencampuran tipe yang tidak disengaja.
  • Tanpa konversi tipe — kode lebih bersih.
  • Dapat digunakan ulang — satu kelas dapat digunakan untuk banyak tipe.

Apa itu T?

T (parameter tipe) adalah tempat untuk tipe nyata. Saat Anda menulis Box<String>, kompilator memperlakukan T sebagai String dalam penggunaan tersebut.

Kode: Box&lt;T&gt;

Box<T>: Saat kita memberikan String sebagai pengganti T, hanya String yang diterima. Tipe yang salah menjadi kesalahan pada waktu kompilasi; tidak ada kejutan saat program dijalankan.

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
  }
}

Kode: inferensi operator berlian

<> (operator berlian) membuat kompilator menyimpulkan tipe di sisi kanan. Jika tidak cocok dengan tipe di sisi kiri, kode tidak dapat dikompilasi; hal ini memberikan keamanan.

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

Parameter tipe berbatas

Batas: Beberapa metode generik memerlukan kemampuan seperti Comparable. Contoh: <T extends Comparable<T>> berarti T harus dapat dibandingkan.

Kode: metode generik berbatas

Metode generik: <T extends Comparable<T>>. Integer dan String kompatibel karena keduanya mengimplementasikan 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)
  }
}

Pemeriksaan dasar tipe generik

Pemeriksaan singkat: Apa manfaat utama menggunakan tipe generik seperti Box<String>?

Ringkasan

Ringkasan: T adalah tempat untuk tipe; tipenya disimpulkan dengan operator berlian. Dengan batasan (extends Comparable), kita membuat metode generik lebih aman dan lebih kuat.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dasar-Dasar Generik (T, Inferensi)” gratis?

Ya — teks lengkap “Dasar-Dasar Generik (T, Inferensi)” 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 “Dasar-Dasar Generik (T, Inferensi)”?

Pelajari parameter tipe generik T , alasan parameter ini memberikan keamanan saat kompilasi, dan cara operator diamond melakukan inferensi tipe. 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 2 dari 3.

Berapa lama pelajaran “Dasar-Dasar Generik (T, Inferensi)” 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