javaweb學習總結四 反射技術

2021-09-08 12:01:03 字數 3851 閱讀 2884

一:反射的概念

反射就是載入類,然後獲取類的屬性、方法、建構函式等。

二:載入類到記憶體(有硬碟位元組碼檔案到記憶體)

三種載入類的方式:

1

@test2//

測試載入類

3public

void test1() throws

exception

三:反射類中的組成部分1:使用getconstructor()、getmethod()、getfield(),可以反射public修飾的成員,

如果需要反射private修飾的成員,需要使用下面的getdeclared***()。

2:反射構造方法

person定義的構造方法:

1

public

person() 45

public

person(string name) 89

public person(string name, int

age)

1213

private person(listlist)

反射構造方法**:

1

@test2//

反射無參構造方法

3public

void test2() throws

exception 910

@test

11//

反射引數string的構造方法

12public

void test3() throws

exception

1819

@test

20//

反射引數為string、int的構造方法

21public

void test4() throws

exception

2728

@test

29//

反射引數為list的構造方法

30public

void test5() throws

exception

其中反射引數為list的構造方法,因為構造方法時private修飾的,所以必須使用getdeclaredconstructor()獲取構造方法,

同時需要設定強制方法setaccessible(true);

也可以直接使用反射類獲取物件,**如下:

1

@test

2public

void test6() throws

exception

2:反射方法

反射方法**如下:

person類中定義的普通方法:

1

public

void

abc() 45

public

string abc(string name) 89

public

void abc(string name, int

i) 1213

public

class abc(inputstream in) ;15}

1617

public

static

void abc(int

i)

反射普通方法:

1

@test2//

public void abc()

3public

void test7() throws

exception 910

@test

11//

public string abc(string name)

12public

void test8() throws

exception

1819

@test

20//

public void abc(string name, int i)

21public

void test9() throws

exception );26}

2728

@test

29//

public class abc(inputstream in)

30public

void test10() throws

exception

3738

@test

39//

public static void abc(int i)

40public

void test11() throws

exception

person定義的main方法:

1

public

static

void

main(string args)

反射main方法:

1

@test2//

public static void main(string args)

3public

void test12() throws

exception );

8 m.invoke(p, new object });

9 }

這裡要注意,由於jdk5相容了jdk1.4的特性,傳入字串陣列時,它會對傳入引數進行拆分,

如:new string將被拆分成"1"、"2"、"3",所以直接反射會報引數個數異常,

有兩種處理方法:

a:在前面加上object  b:將陣列再次放到陣列中

3:反射字段

person類中定義字段:

1

public string name = "tom";

2private

int age = 27;

3private

static

double salary = 8000.0;

反射字段:

1

@test2//

public string name = "tom";

3public

void test13() throws

exception 14}

1516

@test

17//

private int age = 27;

18public

void test14() throws

exception

2627

@test

28//

private static double salary = 8000.0;

29public

void test15() throws

exception

反射的知識就總結到這裡!

javaweb學習總結 4

web伺服器收到客戶端的http請求,會針對每一次請求,分別建立乙個用於代表請求的request物件 和代表響應的response物件。request和response物件即然代表請求和響應,那我們要獲取客戶機提交過來的資料,只需要找request物件就行了。要向客戶機輸出資料,只需要找respon...

javaweb學習總結 6

二 cookie的常用方法 1 向客戶程式傳送cookie 1.1 建立cookie物件 cookie c new cookie userid landril 1.2 設定最大時效,預設該cookie是儲存在瀏覽器的內在中,使用者關閉瀏覽器則被刪除,下面的方法是將cookie儲存在硬碟上。c.set...

JavaWeb學習筆記 java基礎 7 反射

載入類,解析類組成 用來做框架 反射載入類person 3種方法 1class clazz class.forname com.sws.peerson 2class clazz1 new person getclass 3 class clazz3 person.class 反射類的建構函式並建立物...