Java 反射用法總結

2021-09-20 02:59:52 字數 2150 閱讀 8056

簡單的來說,就是在程式執行時,獲取類所有屬性和方法資訊

還可以動態建立乙個物件,並且呼叫它的任意乙個方法、訪問和修改任意乙個屬性,包括private修飾的方法和屬性。

獲得class物件的三種方法

child child = new child();

class yclass = child.getclass();

class mclass = child.class;

class myclass = class.forname("reflect.child");

建立例項物件

class mclass = child.class;

// 方法一

object object = mclass.newinstance();

// 方法二

constructor constructor = mclass.getconstructor();

object object = constructor.newinstance();

// 構造帶引數的

constructor constructor = mclass.getconstructor(string.class);

object object = constructor.newinstance("myname");

獲取類的成員變數資訊

private static void printfields(class mclass) 

/*** getdeclaredfields()

* 獲取所有本類宣告變數(不包括父類的變數)

*/field selffields = mclass.getdeclaredfields();

for (field field : selffields)

}private static void getfieldinfo(field field)

//獲取指定註解

resource resource = field.getannotation(resource.class);

if (resource != null)

}

獲取類的方法資訊

private static void printmethods(class mclass) 

/*** getdeclaredmethods()

* 獲取所有本類宣告方法(不包括父類的方法)

*/method selfmethods = mclass.getdeclaredmethods();

for (method method : selfmethods)

}private static void getmethodinfo(method method)

class exceptiontypes = method.getexceptiontypes();

for (class c : exceptiontypes)

annotation annotations = method.getdeclaredannotations();

for (annotation annotation : annotations)

}

執行方法

private static void invokemethod(class mclass) throws 

nosuchmethodexception, illegalacces***ception,

instantiationexception, invocationtargetexception

private static void modifyprivatefield() throws

nosuchfieldexception, illegalacces***ception,

instantiationexception, nosuchmethodexception,

invocationtargetexception

反射的用法總結

一 反射物件的例項變數 繫結方法 import time class perosn def init self,name,birth self.name name self.birth birth property def age self return time.localtime tm year...

JAVA的反射總結

1.class.forname總結 1.1 原始型別採用class clazz class.forname i getcomponenttype 1.2 類陣列情況採用 lfullclassname 1.3 類情況採用fullclassname 2.class的關鍵函式總結 2.1.1 class....

JAVA高階用法 反射(一)

引言 這裡結合工廠模式和介面來記錄對於反射的理解。和文字部分源於網路。對其進行了重新整理。反射機制對於普通開發者而言,意義不大,一般都是作為一些系統的架構設計去使用的,包括以後學習的開源框架,幾乎都使用了反射機制。反射概念package reflection public class demo 獲取...