Mumpung lagi gampang dan lagi semangat membahas tentang java reflection kali ini saya akan membahas mengenai cara untuk instantiate object menggunakan java reflection. Pada tulisan saya sebelumnya telah membahas cara untuk mengakses property class menggunakan java reflection. Tulisan ini secara tak sengaja saya temukan pada saat saya akan mencoba untuk praktek mengenai cara mengakses method menggunakan java reflection.
Menurut buku tatang sutarma, ups, maksud saya website LEARN JAVA cara untuk membuat objek dengan memanfaatkan java reflection ada dua cara yaitu: memanfaatkan default constructor dan memanfaatkan known constructor. Untuk mempersingkat waktu mari kita mulai bahasan kita dengan contoh potongan source code berikut:
1. Menggunakan Konstruktor Default
Cara ini dilakukan ketika kita akan melakukan instantiate object dimana konstruktor yang akan dipanggil adalah konstruktor tanpa parameter. Syntax dari langkah ini dapat dilihat pada potongan source code berikut:
public Object defaultConstructor(String className){ Object newObject = null; try { Class newClass = Class.forName(className); newObject = newClass.newInstance(); } catch (Exception ex) { ex.printStackTrace(); newObject = null; } return newObject; }
2. Menggunakan Konstruktor Custom
Cara ini dilakukan ketika akan melakukan instantiate object dengan cara memanggil konstruktor dengan parameter didalamnya. Syntax dari langkah ini dapat dilihat pada potongan source code berikut:
public Object customConstructor(String className, Object param){ Object newObject = null; try { Class newClass = Class.forName(className); Class[] parameters = new Class[]{String.class}; Object[] paramsValue = new Object[]{param}; Constructor cons = newClass.getConstructor(parameters); newObject = cons.newInstance(paramsValue); } catch (Exception ex) { ex.printStackTrace(); newObject = null; } return newObject; }
Semoga dengan penjelasan dan sedikit potongan source code diatas bisa memberikan sedikit pemahaman bagi pembaca sekalian. Untuk source code lebih lengkap dan cara menjalankannya bisa di download pada source code yang saya sertakan pada bagian paling bawah dari tulisan ini. Semoga Bermanfaat.
Source Code: InstantiateReflection.zip