Java反射笔记4—Main方法反射
2011-11-20 12:56
387 查看
【作者:孟祥月 博客:http://blog.csdn.net/mengxiangyue】
有时候我们需要调用一个类的Main方法,也可说是执行这个类的代码。但是这时候这个类我们还没有写好,或者这个类是通过网络运行时传给我们的,我们就不可能在程序中知道我们将要运行的类的名字,这时候我们可以利用java的反射机制去调用main方法,只要在我们执行的时候,将我们需要执行的类的名字传递进去就可以了。这个方法在进行网络编程的时候,有时候我们需要接收一个类,我们只有等到接收到了才知道类的名字叫什么,显然现在在写程序不实际,我们就可以利用反射的方法。
下面是一个例子程序:
有时候我们需要调用一个类的Main方法,也可说是执行这个类的代码。但是这时候这个类我们还没有写好,或者这个类是通过网络运行时传给我们的,我们就不可能在程序中知道我们将要运行的类的名字,这时候我们可以利用java的反射机制去调用main方法,只要在我们执行的时候,将我们需要执行的类的名字传递进去就可以了。这个方法在进行网络编程的时候,有时候我们需要接收一个类,我们只有等到接收到了才知道类的名字叫什么,显然现在在写程序不实际,我们就可以利用反射的方法。
下面是一个例子程序:
import java.lang.reflect.Method; public class CopyOfReflectMain { public static void main(String[] args) throws Exception { //这个是我们知道类的名字情况下的调用方式 Test1.main(new String[]{"abc","efg"}); //程序运行时候传递的第一个参数 我们人为是类的名字 String m = args[0]; Method mainMethod = Class.forName(m).getMethod("main",String[].class) ; // mainMethod.invoke(null,new String[]{"abc","efg"}); //上面的语句不能正确执行,因为Test1中的参数是需要一个String数组,但是在jdk中接收到之后将数组 //拆开之后再分别作为参数传递给Test1,既然它拆包我们就再包一层如下,就可以正确执行了 mainMethod.invoke(null, new Object[]{new String[]{"abc","efg"}}); //还可以使用下面的方法, mainMethod.invoke(null, (Object)new String[]{"abc","efg"}); } } class Test1 { public static void main(String[] args) { for(String str:args ) System.out.println(str); } }上面的程序执行的时候在Eclipse里面需要配置,在运行配置中的程序参数中需要加上Test1然后运行会出现如下的结果:
abc efg abc efg abc efg如果哪里写的不妥,或者错了,还请指出。
相关文章推荐
- Java学习笔记14. Java中的main方法
- 黑马程序员java高新技术篇----通过反射调用main方法
- java笔记 第四章 Java面向对象编程基础第一部分(类和main方法)
- Android(java)学习笔记107-0:通过反射获得构造方法并且使用
- Cedar老师的java中的反射学习笔记(三)--获取方法信息
- JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践
- java反射学习笔记(3)---使用Class来获取方法、成员变量、构造函数信息
- JAVA进阶之旅(二)——认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践
- Java中通过反射调用其他类中的main方法时要注意的问题
- Java中通过反射调用其他类中的main方法时要注意的问题
- java中用反射调用其他类的main方法时应注意的问题
- (JAVA自学笔记)成员方法的反射
- Java反射笔记3—变量和方法
- java笔记(6) --反射中的方法调用
- Android(java)学习笔记107-1:通过反射获得带参构造方法并且使用
- Java 反射学习(五)反射的main方法
- java学习笔记(二)关于main方法
- java利用反射实例化类、使用类中普通方法、使用类main(静态)方法
- 你不知道的Java笔记9--解读main()方法中的String[] args
- Java反射在Main方法的中的而应用