プリミティブ型を引数に取るメソッドをリフレクションで呼び出す
おっかしいなぁ、、、会社では boolean を引数に取る場合に new Boolean(true) を渡しても失敗してたんだけどなぁ・・・うまくいった。会社は 1.4 で家では 1.6 なのが関係あり?タダのロジックミスか?明日確認。
import java.lang.reflect.Method; public class Test { public void test1(int i) { System.out.println("test1 -> " + i); } public void test2(boolean flg) { System.out.println("test2 -> " + flg); } public static void main(String[] args) throws Exception { Test obj = new Test(); Class c = null; Method m = null; c = obj.getClass(); m = c.getDeclaredMethod("test1" , new Class[]{int.class}); m.setAccessible(true); m.invoke(obj , new Object[]{new Integer(1)}); c = obj.getClass(); m = c.getDeclaredMethod("test2" , new Class[]{boolean.class}); m.setAccessible(true); m.invoke(obj , new Object[]{new Boolean(true)}); } }