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]);
}
}
}
利用反射調用指向其他類的main方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.