a- package review;
- import java.lang.reflect.Method;
- public class ReflectMainDemo {
- /**
- * 写一个程序,这个程序能够根据用户提供的类名,去执行该类中的main方法
- * @throws Exception
- * @throws SecurityException
- * @throws NoSuchMethodException
- */
- public static void main(String...args) throws NoSuchMethodException, SecurityException, Exception {
- String className = args[0];
- System.out.println(args[0]);
- Method mainMethod = Class.forName("review.ReflectDemo").getMethod("main", String[].class);
- // mainMethod.invoke(null, (Object)new String[]{"111","222"});
- mainMethod.invoke(null, new Object[]{new String[]{"111","222"}});
- //main函数接受的参数是一个字符串数组,如果直接给invoke()传递一个字符串数组,java编译时,会把数组每个元素当成一个参数,
- //这样就会出现类型不匹配,所以需要强制转换成一个对象
- }
- }
- class ReflectDemo {
- public static void main(String[] args) {
- for (String s : args)
- System.out.println(s);
- }
- }
复制代码
|
|