API Refleksi Java: Semua Yang Anda Perlu Tahu



Artikel ini akan memperkenalkan Anda pada Java Reflection API dan juga membantu bagaimana Reflection berfungsi di Java dan bagaimana sebenarnya dengan demonstrasi

Refleksi ialah proses memeriksa atau mengubah tingkah laku masa larian kelas pada waktu larian . API Refleksi Java digunakan untuk memanipulasi kelas dan anggotanya yang merangkumi bidang, kaedah, konstruktor, dan lain-lain pada waktu runtime. Dalam artikel ini kita akan memahami Java Reflection API secara terperinci.

Artikel ini akan memberi tumpuan kepada petunjuk berikut:





Oleh itu, mari kita mulakan dengan petunjuk ini dalam artikel ini di Java Reflection API

Di manakah Java Reflection API digunakan?

Refleksi API digunakan terutamanya dalam:



  • IDE (Persekitaran Pembangunan Bersepadu) mis. Eclipse, MyEclipse, NetBeans dll.
  • Penyahpepijat
  • Alat Ujian dll.

Oleh itu, apakah kelas mencerminkan paket Java lang?

Kelas dalam pakej java.lang.reflect?

Berikut adalah senarai pelbagai kelas Java di java.lang.package untuk melaksanakan refleksi-

  • Padang : Kelas ini digunakan untuk mengumpulkan maklumat deklaratif seperti jenis data, pengubah akses, nama dan nilai pemboleh ubah.
  • Kaedah : Kelas ini digunakan untuk mengumpulkan maklumat deklaratif seperti pengubah akses, jenis pengembalian, nama, jenis parameter dan jenis kaedah pengecualian.
  • Pembina : Kelas ini digunakan untuk mengumpulkan maklumat deklaratif seperti pengubah akses, nama dan jenis parameter konstruktor.
  • Edit : Kelas ini digunakan untuk mengumpulkan maklumat mengenai pengubah akses tertentu.

Tidak, mari kita lihat kaedah Java Reflection API,



Kaedah yang digunakan dalam java.lang.Class

Kaedah

Penerangan

get String umum ()

mengembalikan nama kelas

kelas statik awam untuk Nama (String className) melemparkan ClassNotFoundException

memuat kelas dan mengembalikan rujukan kelas Kelas.

public Object newInstance () melemparkan InstantiationException, IllegalAccessException

mencipta contoh baru.

boolean awam adalah antara muka ()

memeriksa apakah itu antara muka.

boolean awam adalahArray ()

memeriksa sama ada itu array.

awam boolean isPrimitive ()

memeriksa sama ada ia primitif.

kelas awam getSuperclass ()

mengembalikan rujukan kelas superclass.

medan awam [] getDeclaredFields () melemparkan SecurityException

mengembalikan jumlah medan kelas ini.

kaedah awam [] getDeclaredMethods () membuang SecurityException

mengembalikan jumlah kaedah kelas ini.

Konstruktor awam [] getDeclaredConstructors () melemparkan SecurityException

mengembalikan jumlah pembina kelas ini.

kaedah publik getDeclaredMethod (String name, Class [] parameterTypes) melemparkan NoSuchMethodException, SecurityException

mengembalikan contoh kelas kaedah.

Mari kita maju dengan artikel,

Bagaimana untuk mendapatkan objek kelas Kelas?

Terdapat 3 cara untuk mendapatkan contoh kelas Kelas. Ia adalah seperti berikut:

  • forName () kaedah kelas Kelas
  • getClass () kaedah kelas Objek
  • sintaks .class

forName () kaedah kelas Kelas

  • digunakan untuk memuatkan kelas secara dinamik.
  • mengembalikan contoh kelas Kelas.
  • Ia harus digunakan jika anda mengetahui nama kelas yang memenuhi syarat. Ini tidak boleh digunakan untuk jenis primitif.

Mari kita lihat contoh kaedah forName () yang mudah.

class Simple {} class Test {public static void main (String args []) {Class c = Class.forName ('Simple') System.out.println (c.getName ())}}

Pengeluaran:

Ringkas

Java Reflection: API getClass () kaedah kelas Objek

Ia mengembalikan contoh kelas Kelas. Ia harus digunakan sekiranya anda mengetahui jenisnya. Lebih-lebih lagi, ia boleh digunakan dengan primitif.

class Simple {} class Test {void printName (Object obj) {Class c = obj.getClass () System.out.println (c.getName ())} public static void main (String args []) {Simple s = baru Mudah () Ujian t = Ujian baru () t.printName}}}

Pengeluaran:

Ringkas

Sintaks .class

Sekiranya jenis tersedia tetapi tidak ada contoh, adalah mungkin untuk mendapatkan Kelas dengan menambahkan '.class' ke nama jenisnya. Ia juga dapat digunakan untuk jenis data primitif.

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

Pengeluaran:

java cara menggunakan iterator

boolean

Uji

Sekarang mari kita teruskan dengan artikel Java Reflection API ini

Kelebihan dan Kekurangan Menggunakan Java Reflection API

Kelebihan menggunakan Java Reflection API

  • Keistimewaan: Aplikasi boleh menggunakan kelas luaran dan ditentukan pengguna dengan membuat contoh objek yang dapat diperluas menggunakan nama mereka yang memenuhi syarat sepenuhnya.
  • Alat penyahpepijatan dan pengujian : Debuggers menggunakan sifat refleksi untuk memeriksa ahli persendirian di kelas.

Kelemahan penggunaan Java Reflection API

  • Overhead Prestasi: Operasi reflektif mempunyai prestasi yang lebih lambat daripada rakan mereka yang tidak reflektif, dan harus dielakkan dalam bahagian kod yang sering disebut dalam aplikasi yang sensitif terhadap prestasi.
  • Pendedahan Orang Dalam: Kod reflektif memecah penolakan dan oleh itu boleh mengubah tingkah laku dengan peningkatan platform.

Oleh itu, kita telah mengakhiri artikel ini mengenai 'Java Reflection API'. Sekiranya anda ingin mengetahui lebih lanjut,lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen artikel ini dan kami akan menghubungi anda secepat mungkin.