Invoking method by name in Java (Using Reflection)

masih ingat dengan iWidget (my (not so) nightmare :D )
disana banyak diterapkan teknik reflection lho :)

contoh berikut mengambarkan teknik reflection, untuk mengeksekusi sebuah method, dari namanya:

import java.lang.reflect.*;
 
public class Foo {
	public void bar(int param){
		System.out.println(param);
	}
 
	public static void main(String args[]){
		Object f = new Foo();
		try {
			Method m = f.getClass().getMethod("bar", int.class);
			m.invoke(f, 25);
		} catch (Exception e){
			System.err.println(e);
		}
	}
 
}

eksekusi:

$>java Foo
25

hal ini bermanfaat bagi kita yang bekerja dengan sebuah sistem yang memiliki berbagai versi, sehingga kita bisa memeriksa ketersediaan suatu API sebelum menggunakannya, misalnya pada Android

2 thoughts on “Invoking method by name in Java (Using Reflection)

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s