反射用法解析

2021-07-22 02:17:34 字數 1968 閱讀 8855

首先是反射如何獲取類,第三種是我們常用的方法。

public

class

demo1

public

static

void

fun3() throws classnotfoundexception

//每種資料型別都有乙個class 屬性

public

static

void

fun2()

//用object提供的 class<?> getclass()方法

public

static

void

fun1()

}

第二,是反射如何建立物件。有兩種,一是無參的構造方法,二是有參的構造方法

有參的構造方法需要先獲得類的建構函式,再呼叫newinstance()方法

public

class

demo2

//使用帶引數的構造方法建立物件

public

static

void

createobj2() throws classnotfoundexception, nosuchmethodexception, securityexception, instantiationexception, illegalacces***ception, illegalargumentexception, invocationtargetexception

public

static

void

createobj() throws classnotfoundexception, instantiationexception, illegalacces***ception

}

第三是獲取類的成員變數。

需要注意的是,當我們獲取到的成員變數是私有時,我們需要把它的訪問屬性設為可用的。

對於成員變數,若不是靜態成員,我們賦值時需要物件。

public

class

demo3

}

第四是獲取類的方法。

其中有三種情況,一是呼叫無參的方法,二是有參的方法,三是靜態方法

靜態方法不需要物件就可以訪問。

獲得方法後通過invoke()方法呼叫

public

class

demo4

//呼叫靜態方法

public

static

void

m3() throws classnotfoundexception, nosuchmethodexception, securityexception, illegalacces***ception, illegalargumentexception, invocationtargetexception

//呼叫有參的非靜態方法

public

static

void

m2() throws classnotfoundexception, nosuchmethodexception, securityexception, instantiationexception, illegalacces***ception, illegalargumentexception, invocationtargetexception

//呼叫無參的非靜態方法

public

static

void

m1() throws classnotfoundexception, nosuchmethodexception, securityexception, instantiationexception, illegalacces***ception, illegalargumentexception, invocationtargetexception

}

python反射用法

反射在python中是乙個很重要的東西,但是具體怎麼用呢?讓我們來看看。首先我們來建立乙個類,並且定義了2個普通方法,和乙個類方法 class foo dic deffunc1 self print func1 def func2 self print func2 classmethod deffu...

C 解析DLL 反射

前段時間敲 需要動態的載入的外部dll,並且解析dll,來讀取dll中的類,屬性,有時候還需要讀取特性的值。這個問題剛開始遇到,是一點想法沒有,以前沒有這麼用過,後來查資料,請教別人,終於有了結果。當有了 之後,發現在找問題的過程中,我糊塗了,因為解決這個問題的方式主要是 反射。我是通過利用反射進行...

Python 反射的用法

在做程式開發中,我們常常會遇到這樣的需求 需要執行物件裡的某個方法,或需要呼叫物件中的某個變數,但是由於種種原因我們無法確定這個方法或變數是否存在,這是我們需要用乙個特殊的方法或機制要訪問和操作這個未知的方法或變數,這中機制就稱之為反射。接下記錄下反射幾個重要方法 判斷物件中是否有這個方法或變數 c...