Androidで反射を利用して他のjarパッケージを呼び出す方法

965 ワード

パッケージ名クラス名メソッド名
直接コードをつける.
package com.moe.platform;

public class ThirdPlatform {

    public void pay() {
	Log.d("TFSDK", "      ");
	}

}

このパケットを参照しない前提で,反射を用いてこのクラスのpay()メソッドを呼び出す.
try {
			Class> c = Class.forName("com.moe.platform.ThirdPlatform");
			Object obj1 = c.newInstance();
			//Object[] obj2 = new Object[1];
			Method payMethod = c.getMethod("pay");
			payMethod.invoke(obj1);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		}

このpayメソッドにパラメータがある場合、
payMethod.invoke(obj1,  );
ができました.簡単で使いやすいです.