Reflection
•
Memungkinkan untuk menjalankan program Java yang
akan diperiksa dan "refleksi" dari dirinya sendiri (informasi) dan
memanipulasi properti dalam program ini. Contoh: untuk mendapatkan semua
nama-nama anggota kelas dan menampilkan mereka.
•
Kemampuan untuk menjalankan dan memanipulasi
kelas di Jawa.
•
Proses di jalankan waktu JVM.
Menggunakan Kelas class
•
Menggunakan kelas obyek Kelas untuk mendapatkan
informasi dari kelas yang diinginkan. contoh:
MyClass
obj = new MyClass();
Class Class = obj.getClass();
or
Class Class = obj.getClass();
or
Class
Class = MyClass.class;
Catatan:
obj adalah sebuah contoh objek dari kelas MyClass.
Reflection Function
•
Ada beberapa metode / fungsi dari kelas Kelas
yang dapat digunakan untuk memperoleh informasi dari kelas, yaitu:
•
forName
•
getName
•
getSuperclass
•
getContructors
•
getDeclaredField
•
getDeclaredMethod
•
getField dan getFields
•
getInterfaces
•
getMethod dan getMethods
•
getPackage
•
getModifiers
•
isArray
•
isInstance , etc
Informasi lebih lanjut dapat dilihat pada Java
documentation
Example of Reflection
Function
•
Berikut contoh untuk kelas Mahasiswa yang akan
mengambil informasi properti dengan Refleksi:
•
• Ini adalah kelas AmbilKelas yang akan
mengambil informasi untuk kelas Mahasiswa:
•
Output from class AmbilKelas :
Example of Reflection Function :
•
Contoh jika kita ingin mengetahui informasi dari
kelas yang telah dinyatakan sebelumnya dari Java itu sendiri.
•
Output informasi dari kelas Stack
•
Ada 5 fungsi yang kelas Stack memiliki (pop,
push kosong, mengintip, dan pencarian)
•
Dari fungsi di atas, fungsi mengembalikan tipe
nilai bisa berupa Objects (pop, mendorong, mengintip), Boolean (kosong), int
(pencarian)
•
Jika kita mengganti String parameter dalam
fungsi forName ke:
Class
c = Class.forName( "Mahasiswa“ );
Ini akan
menghasilkan:
1.
izin akses untuk setiap fungsi
2.
3 fungsi setter dengan tipe Void
3.
3 fungsi getter dengan nilai pengembalian String
4.
3 fungsi setter dengan parameter String
5.
3 fungsi getter tanpa parsing parameter
Field Reflection
•
Fields di kelas di Jawa juga bisa diperoleh
melalui refleksi dengan menggunakan metode kelas kelas, antara lain dengan
menggunakan:
v getField(String
name) à
mengambil salah satu bidang yang ditunjuk
v getFields()
à mengambil semua bidang
ada
v getDeclaredField(String
name) à mengambil
satu bidang dideklarasikan oleh kelas
v getDeclaredFields()
à mengambil semua bidang
dinyatakan
Example of Field
Reflection
•
Contoh Reflection berikut class Student untuk
mendapatkan bidang dinyatakan
•
Output:
1. Akses
Modifier untuk setiap bidang dinyatakan
2. Jenis
Data setiap bidang dinyatakan
3. nama
field Dideklarasikan
Tidak ada komentar:
Posting Komentar