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<T,U>
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
- Antarmuka dalam Praktik
- Dasar-Dasar Generik (T, Inferensi)
- Metode/Kelas Generik