非深入探尋Java反射機制

本文摘自Java Reflection Tutorial


通過Java的反射(Reflection)機制,即使在編譯時不知道class name和method name等信息,也可以在運行時獲取class、interface、fields和methods等相關信息,還可以創建新的實例、調用方法以及獲取/設置屬性值。


本文將介紹Java反射機制的基本知識,包括:數組(arrays), 註解(annotations),泛型(generics)和動態代理(dynamic proxy),以及動態類的加載和重載入(dynamic class loading and reloading)。

本文還將介紹一些特別的技巧,包括:獲取一個類的getter方法,訪問一個類的私有屬性及方法。

本文在JDK 6 的基礎上介紹Java Reflection。


Example


首先來看一段Java反射的例子

import java.lang.reflect.Method;

public class HelloJava {
	public static void main(String[] args) {
		Method[] methods = HelloJava.class.getMethods();
		for (Method m : methods)
			System.out.println(m.getName());
	}
}


結果爲

main
wait
wait
wait
equals
toString
hashCode
getClass
notify
notifyAll



本文將分爲以下幾個部分來分別介紹Java的反射機制















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章