public class ReflectMethodMain {
public static void main(String[] args) throws Exception {
Method methodMain=TestArgument.class.getMethod("main", String[].class);
/*jdk 1.4之前的版本不支持可變參數,對組類的參數會自動拆包然后用來匹配數據參數,以下的示例中
的參數如果只傳一個數組不做處理會出現參數不比配錯誤*/
//methodMain.invoke(null, args); //錯誤,會出現參數不匹配錯誤
//methodMain.invoke(null, new Object[] {args}); //在拆包之前 打一次包,所以拆開包后的參數類型只有數組類型無參數不匹配錯誤
methodMain.invoke(null, (Object)args); //顯示的聲明了參數是Object類型以此不在拆包,以此也無參數不匹配錯誤
//invoke方法的第一個參數為null時表示,調用的是靜態(static)方法
}
}
class TestArgument {
public static void main(String[] args) {
for (String s : args) {
System.out.println(s);
}
}
}
?