java反射方法調(diào)用
java反射方法調(diào)用
Java 平臺(tái)是基于 Java 語(yǔ)言的平臺(tái)。下面是學(xué)習(xí)啦小編為您帶來(lái)的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è)試類(lèi)");
}
}
控制臺(tái)輸出結(jié)果:
這是測(cè)試Java反射的測(cè)試類(lèi)
重新設(shè)置msg信息!
Process finished with exit code 0
Java相關(guān)知識(shí)點(diǎn)拓展:
Java平臺(tái)和語(yǔ)言最開(kāi)始只是SUN公司在1990年12月開(kāi)始研究的一個(gè)內(nèi)部項(xiàng)目。SUN公司的一個(gè)叫做帕特里克·諾頓的工程師被自己開(kāi)發(fā)的C和C語(yǔ)言編譯器搞得焦頭爛額,因?yàn)槠渲械腁PI極其難用。帕特里克決定改用NeXT,同時(shí)他也獲得了研究公司的一個(gè)叫做“Stealth 計(jì)劃”的項(xiàng)目的機(jī)會(huì)。
“Stealth 計(jì)劃”后來(lái)改名為“Green計(jì)劃”,JGosling(詹姆斯·高斯林)和麥克·舍林丹也加入了帕特里克的工作小組。他們和其他幾個(gè)工程師一起在加利福尼亞州門(mén)羅帕克市沙丘路的一個(gè)小工作室里面研究開(kāi)發(fā)新技術(shù),瞄準(zhǔn)下一代智能家電(如微波爐)的程序設(shè)計(jì),SUN公司預(yù)料未來(lái)科技將在家用電器領(lǐng)域大顯身手。團(tuán)隊(duì)最初考慮使用C 語(yǔ)言,但是很多成員包括SUN的首席科學(xué)家比爾·喬伊,發(fā)現(xiàn)C 和可用的API在某些方面存在很大問(wèn)題。
工作小組使用的是內(nèi)嵌類(lèi)型平臺(tái),可以用的資源極其有限。很多成員發(fā)現(xiàn)C 太復(fù)雜以至很多開(kāi)發(fā)者經(jīng)常錯(cuò)誤使用。他們發(fā)現(xiàn)C 缺少垃圾回收系統(tǒng),還有可移植的安全性、分布程序設(shè)計(jì)、和多線(xiàn)程功能。最后,他們想要一種易于移植到各種設(shè)備上的平臺(tái)。
根據(jù)可用資金,比爾·喬伊決定開(kāi)發(fā)一種集C語(yǔ)言和Mesa語(yǔ)言搭成的新語(yǔ)言,在一份報(bào)告上,喬伊把它叫做“未來(lái)”,他提議SUN公司的工程師應(yīng)該在C 的基礎(chǔ)上,開(kāi)發(fā)一種面向?qū)ο蟮沫h(huán)境。最初,高斯林試圖修改和擴(kuò)展C 的功能,他自己稱(chēng)這種新語(yǔ)言為C --,但是后來(lái)他放棄了。他將要?jiǎng)?chuàng)造出一種全新的語(yǔ)言,被他命名為“Oak”(橡樹(shù)),以他的辦公室外的樹(shù)而命名。