Tulisan seperti dibawah ini saya yakin sudah banyak sekali bertebaran di internet, namun mungkin suatu saat nanti jika saya membutuhkannya lagi bisa dengan mudah saya temukan - menulis untuk menjaga pengetahuan -.
Ketika mengkoding di Java pernah saya memakai inisiasi class dengan cara dinamis, inisiasi dengan memakai nama kelas (class name) di variabel string. Kebutuhan membuat objek dari sebuah kelas secara dinamis kadang sebagai jalan keluar paling optimal ketika membuat aplikasi.
Jadi saya mempunyai nama kelas Java di variabel string dan membuat object dari kelas tersebut secara dinamis dengan cara berikut:
String namaKelas = "com.alfanla.MyClass";
Class kelas = Class.forName(namaKelas);
Object objek = kelas.getConstructor().newInstance();
Permasalahannya adalah bagaimana kita dapat mengkonversi otomatis variabel objek diatas ke objek MyClass jika isi namaKelas dapat berubah-ubah (dinamis) sehingga kita bisa memanggil method di dalam class tersebut? Berikut syntax yang biasa saya gunakan:
Object newObjek = Class.forName(namaKelas).cast(objek);
Namun apabila isi namaKelas tidak dinamis, dengan mudah dapat menggunakan reflection:
MyClass newObjek = MyClass.class.cast(objek);