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

Java Generik

Java Generik

Dalam tutorial ini, kita akan belajar tentang Java Generics, cara membuat class dan method generics dan kelebihannya dengan bantuan contoh.

Java Generics memungkinkan kita untuk membuat satu kelas, antarmuka, dan metode yang dapat digunakan dengan berbagai jenis data (objek).

Ini membantu kami untuk menggunakan kembali kode kami.

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


Kelas Java Generik

Kita dapat membuat kelas yang dapat digunakan dengan semua jenis data. Kelas seperti itu dikenal sebagai Kelas Generik.

Berikut adalah cara membuat kelas generik di Java:

Contoh:Buat Kelas Generik

class Main {
  public static void main(String[] args) {

    // initialize generic class
    // with Integer data
    GenericsClass<Integer> intObj = new GenericsClass<>(5);
    System.out.println("Generic Class returns: " + intObj.getData());

    // initialize generic class
    // with String data
    GenericsClass<String> stringObj = new GenericsClass<>("Java Programming");
    System.out.println("Generic Class returns: " + stringObj.getData());
  }
}

// create a generics class
class GenericsClass<T> {

  // variable of T type
  private T data;

  public GenericsClass(T data) {
    this.data = data;
  }

  // method that return T type variable
  public T getData() {
    return this.data;
  }
}

Keluaran

Generic Class returns: 5
Generic Class returns: Java Programming

Pada contoh di atas, kami telah membuat kelas generik bernama GenericsClass . Kelas ini dapat digunakan untuk bekerja dengan semua jenis data.

class GenericsClass<T> {...}

Di sini, T digunakan di dalam kurung sudut <> menunjukkan parameter jenis . Di dalam Main kelas, kami telah membuat dua objek GenericsClass


Metode Java Generik

Mirip dengan kelas generik, kami juga dapat membuat metode yang dapat digunakan dengan semua jenis data. Kelas seperti itu dikenal sebagai Metode Generik.

Berikut adalah cara membuat kelas generik di Java:

Contoh:Membuat Metode Generik

class Main {
  public static void main(String[] args) {

    // initialize the class with Integer data
    DemoClass demo = new DemoClass();

    // generics method working with String
    demo.<String>genericsMethod("Java Programming");

    // generics method working with integer
    demo.<Integer>genericsMethod(25);
  }
}

class DemoClass {

  // creae a generics method
  public <T> void genericsMethod(T data) {
    System.out.println("Generics Method:");
    System.out.println("Data Passed: " + data);
  }
}

Keluaran

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

Pada contoh di atas, kami telah membuat metode generik bernama genericsMethod .

public <T> void genericMethod(T data) {...}

Di sini, parameter tipe <T> dimasukkan setelah pengubah public dan sebelum mengembalikan ketik void .

Kita dapat memanggil metode generik dengan menempatkan tipe sebenarnya <String> dan <Integer> di dalam kurung sebelum nama metode.

demo.<String>genericMethod("Java Programming");

demo.<Integer>genericMethod(25);

Catatan :Kita dapat memanggil metode generik tanpa menyertakan parameter type. Misalnya,

demo.genericsMethod("Java Programming");

Dalam hal ini, kompiler dapat mencocokkan parameter tipe berdasarkan nilai yang diteruskan ke metode.


Jenis Terikat

Secara umum, parameter jenis dapat menerima tipe data apa pun (kecuali tipe primitif).

Namun, jika kita ingin menggunakan generik untuk beberapa tipe tertentu saja (seperti menerima data tipe bilangan), maka kita dapat menggunakan tipe terikat.

Dalam kasus tipe terikat, kami menggunakan extends kata kunci. Misalnya,

<T extends A>

Ini berarti T hanya dapat menerima data yang merupakan subtipe dari A .

Contoh:Jenis Terikat

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) {

    // create an object of GenericsClass
    GenericsClass<String> obj = new GenericsClass<>();
  }
}

Pada contoh di atas, kita telah membuat sebuah kelas bernama GenericsClass. Perhatikan ekspresinya, perhatikan ekspresinya

<T extends Number> 

Di sini, GenericsClass dibuat dengan tipe terbatas. Ini berarti GenericsClass hanya dapat bekerja dengan tipe data yang merupakan turunan dari Number (Integer , Double , dan seterusnya).

Namun, kami telah membuat objek dari kelas generik dengan String . Dalam hal ini, kita akan mendapatkan kesalahan berikut.

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

Kelebihan Java Generics

1. Penggunaan Kembali Kode

Dengan bantuan generik di Java, kita dapat menulis kode yang akan bekerja dengan berbagai jenis data. Misalnya,

public <T> void genericsMethod(T data) {...}

Di sini, kami telah membuat metode generik. Metode yang sama ini dapat digunakan untuk melakukan operasi pada data integer, data string, dan sebagainya.

2. Pemeriksaan Jenis waktu kompilasi

parameter jenis of generics memberikan informasi tentang tipe data yang digunakan dalam kode generics. Misalnya,

// using Generics
GenericsClass<Integer> list = new GenericsClass<>();

Di sini, kita tahu bahwa GenericsClass bekerja dengan Integer data saja.

Sekarang, jika kita mencoba mengirimkan data selain Integer ke kelas ini, program akan menghasilkan kesalahan pada waktu kompilasi.

3. Digunakan dengan Koleksi

Kerangka koleksi menggunakan konsep generik di Jawa. Misalnya,

// creating a string type ArrayList
ArrayList<String> list1 = new ArrayList<>();

// creating a integer type ArrayList
ArrayList<Integer> list2 = new ArrayList<>();

Dalam contoh di atas, kita telah menggunakan kelas ArrayList yang sama untuk bekerja dengan tipe data yang berbeda.

Mirip dengan ArrayList , koleksi lainnya (LinkedList , Queue , Maps , dan seterusnya) juga generik di Java.


java

  1. Kata kunci terakhir Java
  2. Instance Java dari Operator
  3. Warisan Jawa
  4. Kelas Statis Bersarang Java
  5. Kelas Anonim Java
  6. Kelas Tunggal Jawa
  7. Refleksi Jawa
  8. Kelas Daftar Array Java
  9. Kelas Java ObjectOutputStream
  10. Kelas File Java