Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> java

Menguasai Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe

Java Generics – Membangun Kode yang Dapat Digunakan Kembali dan Aman Tipe

Panduan ini menjelaskan generik Java, cara membuat kelas dan metode generik, serta manfaatnya, diilustrasikan dengan contoh yang jelas.

Generik Java memungkinkan Anda menulis satu kelas, antarmuka, atau metode yang dapat beroperasi pada banyak tipe data berbeda, sambil mempertahankan keamanan waktu kompilasi.

Catatan: Generik tidak bekerja dengan tipe primitif (int, float, char, dll).


Kelas Generik Java

Dengan mendeklarasikan parameter tipe, Anda dapat membuat kelas yang bekerja dengan tipe objek apa pun.

Contoh: Buat Kelas Generik

class Main { public static void main(String[] args) { GenericsClass<Integer> intObj = new GenericsClass<>(5); System.out.println("Generic Class returns: " + intObj.getData()); GenericsClass<String> stringObj = new GenericsClass<>("Java Programming"); System.out.println("Generic Class returns: " + stringObj.getData()); } } class GenericsClass<T> { private T data; public GenericsClass(T data) { this.data = data; } public T getData() { return this.data; } } 

Output

Generic Class returns: 5 Generic Class returns: Java Programming

Dalam contoh di atas, GenericsClass adalah kelas generik tempat T adalah parameter tipe. Dua instance dibuat:


Metode Generik Java

Metode juga dapat bersifat generik, memungkinkan mereka untuk menerima argumen tipe apa pun sambil mempertahankan keamanan tipe.

Contoh: Buat Metode Generik

class Main { public static void main(String[] args) { DemoClass demo = new DemoClass(); demo.<String>genericsMethod("Java Programming"); demo.<Integer>genericsMethod(25); } } class DemoClass { public <T> void genericsMethod(T data) { System.out.println("Generics Method:"); System.out.println("Data Passed: " + data); } } 

Output

Generics Method: Data Passed: Java Programming Generics Method: Data Passed: 25

Saat compiler dapat menyimpulkan tipe, Anda dapat menghilangkan argumen tipe eksplisit:

demo.genericsMethod("Java Programming");

Tipe Terbatas

Kadang Anda ingin tipe generik hanya menerima keluarga kelas tertentu. Tipe terbatas mencapai ini menggunakan kata kunci extends.

Sintaks: <T extends A> – T dapat menjadi A atau subtipe apa pun dari A.

Contoh: Tipe Terbatas

class GenericsClass <T extends Number> { public void display() { System.out.println("This is a bounded type generics class."); } } class Main { public static void main(String[] args) { // GenericsClass<String> obj = new GenericsClass<>(); // compile‑time error } } 

Di sini, GenericsClass hanya menerima tipe numerik (Integer, Double, dll.). Mencoba membuat instance-nya dengan String menyebabkan kesalahan waktu kompilasi:

GenericsClass<String> obj = new GenericsClass<>(); ^ reason: inference variable T has incompatible bounds equality constraints: String lower bounds: Number where T is a type-variable: T extends Number declared in class GenericsClass

Keuntungan Generik Java

1. Reusabilitas Kode

Kode generik dapat beroperasi pada banyak tipe data, mengurangi duplikasi. Contohnya, satu metode dapat memproses integer, string, dan objek kustom.

2. Pemeriksaan Tipe Waktu Kompilasi

Karena parameter tipe diketahui pada waktu kompilasi, compiler dapat mendeteksi ketidakcocokan tipe sebelum program dijalankan.

3. Integrasi yang Lancar dengan Koleksi

Framework koleksi Java didasarkan pada generik, memungkinkan koleksi untuk menegakkan keamanan tipe. Contoh:

ArrayList<String> list1 = new ArrayList<>(); ArrayList<Integer> list2 = new ArrayList<>();

Kelas koleksi lainnya (LinkedList, Queue, Map, dll.) juga menggunakan generik untuk manfaat yang sama.

java

  1. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  2. Operator instanceof Java: Panduan Lengkap
  3. Menguasai Warisan Java: Konsep, Jenis, dan Contoh Praktis
  4. Memahami Kelas Bersarang Statis Java: Penggunaan, Perbedaan, dan Contoh
  5. Menguasai Kelas Dalam Anonim Java: Definisi, Sintaks, dan Contoh Praktis
  6. Pola Singleton Java Dijelaskan: Cara Menerapkan dan Menggunakannya dengan Aman
  7. Menguasai Refleksi Java: Memeriksa Kelas, Metode, dan Field pada Waktu Eksekusi
  8. Menguasai Java ArrayList: Operasi, Metode, dan Praktik Terbaik
  9. Menguasai Java ObjectOutputStream: Serialisasi, Metode, dan Contoh Praktis
  10. Pengoperasian File Java dengan java.io – Pembuatan, Pembacaan, Penulisan & Penghapusan