Java Reflection API: Semua yang Perlu Anda Ketahui



Artikel ini akan memperkenalkan Anda ke Java Reflection API dan juga membantu cara kerja Refleksi di Java dan apa itu demonstrasi

Refleksi adalah proses pemeriksaan atau modifikasi perilaku run time kelas pada waktu proses . Java Reflection API digunakan untuk memanipulasi kelas dan anggotanya yang mencakup bidang, metode, konstruktor, dll. pada waktu proses. Pada artikel ini kita akan memahami Java Reflection API secara detail.

Artikel ini akan fokus pada petunjuk berikut:





Jadi mari kita mulai dengan petunjuk ini di artikel tentang Java Reflection API ini

Di mana Java Reflection API digunakan?

API Refleksi terutama digunakan di:



  • IDE (Integrated Development Environment) misalnya Eclipse, MyEclipse, NetBeans dll.
  • Debugger
  • Alat Uji dll.

Jadi apa yang dimaksud dengan paket Kelas di Java lang mencerminkan?

Kelas di Paket java.lang.reflect?

Berikut adalah daftar berbagai kelas Java di java.lang.package untuk mengimplementasikan refleksi-

  • Bidang : Kelas ini digunakan untuk mengumpulkan informasi deklaratif seperti tipe data, pengubah akses, nama dan nilai variabel.
  • metode : Kelas ini digunakan untuk mengumpulkan informasi deklaratif seperti pengubah akses, tipe kembalian, nama, tipe parameter dan tipe pengecualian dari suatu metode.
  • Pembangun : Kelas ini digunakan untuk mengumpulkan informasi deklaratif seperti pengubah akses, nama dan jenis parameter konstruktor.
  • Edit : Kelas ini digunakan untuk mengumpulkan informasi tentang pengubah akses tertentu.

Tidak, mari kita lihat metode Java Reflection API,



Metode yang digunakan di java.lang.Class

metode

Deskripsi

public String getName ()

mengembalikan nama kelas

Kelas forName publik statis (String className) melempar ClassNotFoundException

memuat kelas dan mengembalikan referensi kelas Kelas.

public Object newInstance () melempar InstantiationException, IllegalAccessException

membuat contoh baru.

public boolean isInterface ()

memeriksa apakah itu antarmuka.

public boolean isArray ()

memeriksa apakah itu array.

public boolean isPrimitive ()

memeriksa apakah itu primitif.

Kelas publik getSuperclass ()

mengembalikan referensi kelas superclass.

Public Field [] getDeclaredFields () melempar SecurityException

mengembalikan jumlah total bidang kelas ini.

Metode publik [] getDeclaredMethods () melempar SecurityException

mengembalikan jumlah total metode kelas ini.

public Constructor [] getDeclaredConstructors () melempar SecurityException

mengembalikan jumlah total konstruktor kelas ini.

Metode publik getDeclaredMethod (String name, Class [] parameterTypes) melempar NoSuchMethodException, SecurityException

mengembalikan instance kelas metode.

Mari kita lanjutkan dengan artikel,

Bagaimana cara mendapatkan objek kelas kelas?

Ada 3 cara untuk mendapatkan instance kelas Class. Mereka adalah sebagai berikut:

  • forName () metode kelas Kelas
  • getClass () dari kelas Object
  • sintaks .class

forName () metode kelas Kelas

  • digunakan untuk memuat kelas secara dinamis.
  • mengembalikan instance kelas Kelas.
  • Ini harus digunakan jika Anda mengetahui nama kelas yang sepenuhnya memenuhi syarat. Ini tidak dapat digunakan untuk tipe primitif.

Mari kita lihat contoh sederhana metode forName ().

kelas Sederhana {} kelas Uji {public static void main (String args []) {Kelas c = Class.forName ('Sederhana') System.out.println (c.getName ())}}

Keluaran:

penggunaan kelas scanner di java

Sederhana

Java Reflection: API getClass () metode kelas Objek

Ini mengembalikan contoh kelas Kelas. Ini harus digunakan jika Anda tahu tipenya. Selain itu, dapat digunakan dengan primitif.

kelas Sederhana {} kelas Uji {void printName (Objek obj) {Kelas c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Sederhana s = baru Sederhana () Uji t = Uji baru () t.printName (s)}}

Keluaran:

Sederhana

Sintaks .class

Jika suatu tipe tersedia tetapi tidak ada instance, maka dimungkinkan untuk mendapatkan Kelas dengan menambahkan '.class' ke nama tipe. Kelas juga dapat digunakan untuk tipe data primitif.

kelas Uji {public static void main (String args []) {Kelas c = boolean.class System.out.println (c.getName ()) Kelas c2 = Test.class System.out.println (c2.getName ()) }}

Keluaran:

boolean

Uji

Sekarang mari kita lanjutkan dengan artikel Java Reflection API ini

Keuntungan dan Kerugian Menggunakan Java Reflection API

Keuntungan menggunakan Java Reflection API

  • Fitur Ekstensibilitas: Aplikasi dapat menggunakan kelas eksternal yang ditentukan pengguna dengan membuat instance objek yang dapat diperluas menggunakan nama yang sepenuhnya memenuhi syarat.
  • Alat debugging dan pengujian : Debugger menggunakan properti refleksi untuk memeriksa anggota privat di kelas.

Kekurangan menggunakan Java Reflection API

  • Kinerja Overhead: Operasi reflektif memiliki kinerja yang lebih lambat daripada operasi non-reflektif, dan harus dihindari di bagian kode yang sering dipanggil dalam aplikasi yang peka terhadap kinerja.
  • Paparan Internal: Kode reflektif memecah abstraksi dan karena itu dapat mengubah perilaku dengan peningkatan platform.

Jadi kami telah mengakhiri artikel ini tentang 'Java Reflection API'. Jika Anda ingin mempelajari lebih lanjut,lihat oleh Edureka, perusahaan pembelajaran online terpercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA dari Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar artikel ini dan kami akan menghubungi Anda sesegera mungkin.