利用反射調用指向其他類的main方法

package com.franky.reflex;

import java.lang.reflect.Method;

/**
 * @描述 用反射調用其他類的main方法
 * @作者 franky
 * @日期 2014-12-30 下午5:01:16
 */
public class InvokeMainWithReflex {

	/**
	 * @param args 傳入的參數列表
	 * @throws Exception 
	 * @throws NoSuchMethodException 
	 */
	public static void main(String[] args) throws NoSuchMethodException, Exception {
		Class<String> clazz = (Class<String>) Class.forName(args[0]);
		Method method = clazz.getMethod("main", String[].class);
		//傳入的參數列表必須由Object數組包裝,或者強制轉換成Object對象(效率高?),因爲JDK1.4
		//會將數組的成員拆散成單個對象
		method.invoke(null, new Object[]{new String[]{"abc","222","哈哈"}});
		method.invoke(null, (Object)new String[]{"bbb","333","嘻嘻"});
	}

}


class MainTest{
	public static void main(String[] args){
		for (int i = 0; i < args.length; i++) {
			System.out.println(args[i]);
		}
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章