学习啦 > 知识大全 > 方法百科 > 产品使用方法 > java反射方法调用

java反射方法调用

时间: 陈哲凡673 分享

java反射方法调用

学习啦在线学习网   Java 平台是基于 Java 语言的平台。下面是学习啦小编为您带来的java反射方法调用,希望对大家有所帮助。

  java反射方法调用:

  import java.lang.reflect.Method;

学习啦在线学习网   import java.lang.reflect.InvocationTargetException;

  /**

学习啦在线学习网   * Created by IntelliJ IDEA.

  * File: TestRef.java

学习啦在线学习网   * User: leizhimin

  * Date: 2008-1-28 14:48:44

  */

学习啦在线学习网   public class TestRef {

学习啦在线学习网   public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {

学习啦在线学习网   Foo foo = new Foo("这个一个Foo对象!");

  Class clazz = foo.getClass();

学习啦在线学习网   Method m1 = clazz.getDeclaredMethod("outInfo");

  Method m2 = clazz.getDeclaredMethod("setMsg", String.class);

学习啦在线学习网   Method m3 = clazz.getDeclaredMethod("getMsg");

  m1.invoke(foo);

学习啦在线学习网   m2.invoke(foo, "重新设置msg信息!");

  String msg = (String) m3.invoke(foo);

  System.out.println(msg);

  }

  }

学习啦在线学习网   class Foo {

  private String msg;

学习啦在线学习网   public Foo(String msg) {

学习啦在线学习网   this.msg = msg;

  }

  public void setMsg(String msg) {

  this.msg = msg;

  }

学习啦在线学习网   public String getMsg() {

  return msg;

  }

学习啦在线学习网   public void outInfo() {

  System.out.println("这是测试Java反射的测试类");

  }

  }

学习啦在线学习网   控制台输出结果:

学习啦在线学习网   这是测试Java反射的测试类

学习啦在线学习网   重新设置msg信息!

  Process finished with exit code 0

  Java相关知识点拓展:

  Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目。SUN公司的一个叫做帕特里克·诺顿的工程师被自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth 计划”的项目的机会。

  “Stealth 计划”后来改名为“Green计划”,JGosling(詹姆斯·高斯林)和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,SUN公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C 语言,但是很多成员包括SUN的首席科学家比尔·乔伊,发现C 和可用的API在某些方面存在很大问题。

  工作小组使用的是内嵌类型平台,可以用的资源极其有限。很多成员发现C 太复杂以至很多开发者经常错误使用。他们发现C 缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。

  根据可用资金,比尔·乔伊决定开发一种集C语言和Mesa语言搭成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议SUN公司的工程师应该在C 的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C 的功能,他自己称这种新语言为C --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的树而命名。

551697