學(xué)習(xí)啦 > 知識(shí)大全 > 方法百科 > 產(chǎn)品使用方法 > java反射方法調(diào)用

java反射方法調(diào)用

時(shí)間: 陳哲凡673 分享

java反射方法調(diào)用

  Java 平臺(tái)是基于 Java 語言的平臺(tái)。下面是學(xué)習(xí)啦小編為您帶來的java反射方法調(diào)用,希望對(duì)大家有所幫助。

  java反射方法調(diào)用:

  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("這個(gè)一個(gè)Foo對(duì)象!");

  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, "重新設(shè)置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("這是測(cè)試Java反射的測(cè)試類");

  }

  }

  控制臺(tái)輸出結(jié)果:

  這是測(cè)試Java反射的測(cè)試類

  重新設(shè)置msg信息!

  Process finished with exit code 0

  Java相關(guān)知識(shí)點(diǎn)拓展:

  Java平臺(tái)和語言最開始只是SUN公司在1990年12月開始研究的一個(gè)內(nèi)部項(xiàng)目。SUN公司的一個(gè)叫做帕特里克·諾頓的工程師被自己開發(fā)的C和C語言編譯器搞得焦頭爛額,因?yàn)槠渲械腁PI極其難用。帕特里克決定改用NeXT,同時(shí)他也獲得了研究公司的一個(gè)叫做“Stealth 計(jì)劃”的項(xiàng)目的機(jī)會(huì)。

  “Stealth 計(jì)劃”后來改名為“Green計(jì)劃”,JGosling(詹姆斯·高斯林)和麥克·舍林丹也加入了帕特里克的工作小組。他們和其他幾個(gè)工程師一起在加利福尼亞州門羅帕克市沙丘路的一個(gè)小工作室里面研究開發(fā)新技術(shù),瞄準(zhǔn)下一代智能家電(如微波爐)的程序設(shè)計(jì),SUN公司預(yù)料未來科技將在家用電器領(lǐng)域大顯身手。團(tuán)隊(duì)最初考慮使用C 語言,但是很多成員包括SUN的首席科學(xué)家比爾·喬伊,發(fā)現(xiàn)C 和可用的API在某些方面存在很大問題。

  工作小組使用的是內(nèi)嵌類型平臺(tái),可以用的資源極其有限。很多成員發(fā)現(xiàn)C 太復(fù)雜以至很多開發(fā)者經(jīng)常錯(cuò)誤使用。他們發(fā)現(xiàn)C 缺少垃圾回收系統(tǒng),還有可移植的安全性、分布程序設(shè)計(jì)、和多線程功能。最后,他們想要一種易于移植到各種設(shè)備上的平臺(tái)。

  根據(jù)可用資金,比爾·喬伊決定開發(fā)一種集C語言和Mesa語言搭成的新語言,在一份報(bào)告上,喬伊把它叫做“未來”,他提議SUN公司的工程師應(yīng)該在C 的基礎(chǔ)上,開發(fā)一種面向?qū)ο蟮沫h(huán)境。最初,高斯林試圖修改和擴(kuò)展C 的功能,他自己稱這種新語言為C --,但是后來他放棄了。他將要?jiǎng)?chuàng)造出一種全新的語言,被他命名為“Oak”(橡樹),以他的辦公室外的樹而命名。

551697