网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > Java精品代码 > 正文

Java反射笔记4—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);
  }
  }
  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

查看全部1条评论

最新评论

  • 删除 ergouge (2011-11-21 21:00:29, 评分: 3 )

    3
查看全部1条评论


点击下载系统:http://www.myeducs.cn/chaxun/index.html?go=Java反射笔记4—Main方法反射&aa=%CB%D1%CB%F7%C2%DB%CE%C4
  • 上一篇资讯: 初学java,javac怎么用
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师