1.定义一个Student类
public class Student {public static void sop(Object obj){
System.out.println(obj);
}
public static void main(String[] args){
sop("main()方法被调用了。。。。");
}
}
2.定义一个测试类
public class MainDemo {
public static void main(String[] args){
try {
/*1.获取Class对象*/
Class cls = Class.forName("com.bmw.Student");
/*2.获取main方法*/
Method mainMethod = cls.getMethod("main", String[].class); //第一个参数,对象类型,
// 因为方法是static静态的,所以为null可以,第二个参数是String数组,这里要注意在jdk1.4时是数组,jdk1.5之后是可变参数
/*3.调用main方法*/
mainMethod.invoke(null,(Object) new String[]{"a","b","c"});//这里拆的时候将
// new String[]{"a","b","c"} 拆成3个对象。。。所以需要将它强转。
// methodMain.invoke(null, new Object[]{new String[]{"a","b","c"}});//方式二
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.测试结果
![](https://i-blog.csdnimg.cn/blog_migrate/022f5c8342b9098e5e607c42397a9ceb.png)