反射詳細介紹

2021-10-23 03:14:28 字數 2768 閱讀 3344

眾所周知,獲取物件中的class物件有三種:

注意:class物件的建立和載入只執行一次!!!

開發中最受青睞:foename

因為foename擴充套件性好,靈活度高,我們程式設計師往往不想把**寫死,

所有我們就利用forname方法的引數來進行多次運用,我們可以將字串放在檔案裡,

利用io流技術讀取到之後放到foename裡,後面我們再想獲取不同的class的物件的時候,

就不用改**了,直接改檔案就行了

下面示例**:

person:(注意:我們後面的**都用person物件)

public

class

person

public

person()

public

person

(string name,

int age)

private

person

(string name)

public string getname()

public

void

setname

(string name)

public

intgetage()

public

void

setage

(int age)

@override

public string tostring()

';}}

/**

* 三種獲取class物件

*/public

class

test01

}

獲取class物件中的構造:

1. constructor getconstructors()

獲取所有的public修飾的構造方法

2. constructor getconstructor(class... parametertypes)

根據引數型別獲取構造方法物件,只能獲得public修飾的構造方法。

如果只獲取空參構造,getconstructor()

3.根據獲取出來的構造方法物件,建立物件

t newinstance(object... initargs)

如果new無參構造,引數不用寫

public

class

test02

//獲取有參構造

private

static

void

method

(class aclass

)throws exception

//獲取空參構造

private

static

void

method1

(class aclass

)throws exception

//獲取空參構造

private

static

void

method2

(class aclass

)throws exception

}}

獲取私有的構造:

constructorgetdeclaredconstructor(class<?>... parametertypes)

可以獲取私有的構造

constructor<?> getdeclaredconstructors()

可以獲取所有的構造,包括私有的

accessibleobject中的方法

void setaccessible(boolean flag)

flag:false-->代表的是不能訪問私有的

flag:true-->解除了私有的許可權

public

class

test03

}

獲取class物件中的成員方法:

method getmethods() 獲取所有的方法,public

method getmethod(string name, class<?>... parametertypes)

name:獲取的方法名

parametertypes:該方法的引數型別

object invoke(object obj, object... args)->獲取的方法返回值不知道,

所以返回值型別為object

public

class

test04

}}

需求:

利用反射技術,建立物件,執行物件的方法

配置檔案,寫的是類的名字和方法名字

io讀取檔案,獲取類和方法名, 反射呼叫

需要在src目錄下建立properties檔案

//在src下建立乙個pro.properties檔案

classname=com.aoshen.day15.class02.person

methodname=eat

/**

* 反射小案例

*/public

class

test05

}

反射機制的介紹

反射機制 程式在執行的過程中載入 一些 只知道相關名字 的類,以下 在程式執行時載入user類。class c class forname com.bjsxt.reflect.user 乙個類被載入後,jvm會建立乙個對應類的class物件,類的整個結構資訊會被放到class物件中。這個class物...

反射的基本介紹

反射 通過字串的形式匯入模組,通過字串的形式去模組中尋找指定函式 字段 全域性變數等 根據使用者輸入的內容匯入模組 由以下四個內建函式提供 hasattr getattr setattr delattr,改四個函式分別用於對物件內部執行 檢查是否含有某成員 獲取成員 設定成員 刪除成員。classf...

robots txt詳細介紹

robots.txt基本介紹 當乙個搜尋機械人 有的叫搜尋蜘蛛 訪問乙個站點時,它會首先檢查該站點根目錄下是否存在robots.txt,如果存在,搜尋機械人就會按照該檔案中的內容來確定訪問的範圍 如果該檔案不存在,那麼搜尋機械人就沿著鏈結抓取。另外,robots.txt必須放置在乙個站點的根目錄下,...