问题:
写一个程序接收用户传入的类名,执行该类的main方法。
Ans:
程序片段1:
package com.cpic.main;
/** 程序片段1**/
public class TestHello {
public static void main(String[] args) {
System.out.println("Hello world !");
}
}
程序片段2:
package com.cpic.main;
import java.lang.reflect.Method;
/**
* 写一个程序,这个程序能够根据用户给定的类名去调用类的main方法
* @author User Soft
*
*/
public class CallTestHelloMain {
public static void main(String[] args) {
/** 普通方式调用另一个类的main方法 **/
//TestHello.main(new String[]{});
String startingClassName = "com.cpic.main.TestHello";
Method mainMethod;
try {
/** 获得类TestHell.java的main方法,参数:方法名,"main";方法的参数,String型数组String[].class **/
mainMethod = Class.forName(startingClassName).getMethod("main", String[].class);
//mainMethod.invoke(null, new Object[]{new String[]{"111","222","333"}});
//mainMethod.invoke(null, (Object)new String[]{"111","222","333"});
mainMethod.invoke(null, (Object)new String[]{});
} catch (Exception e) {
System.out.println(e);
}
}
}
输出:
Hello world !