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