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方法
最新推荐文章于 2023-06-14 19:20:26 发布