獲取執行時類的結構

2021-10-25 08:50:35 字數 2083 閱讀 1511

通過反射建立對應的執行時類的物件

public

void

test1()

throws illegalacces***ception, instantiationexception

}

獲取執行時類的方法結構:

public

class

methodtest

system.out.

println()

;//getdeclaremethods():獲取當前執行時類中宣告的所有方法。(不包含父類中宣告的方法)

method[

] declaredmethod = clazz.

getdeclaredmethods()

;for

(method m : declaredmethod

)}/*

許可權修飾符 返回值型別 方法名(引數型別1 形參名1) throws ***exception

*/@test

public

void

test2()

//2.許可權修飾符

system.out.

print

(modifier.

tostring

(m.getmodifiers()

)+"\t");

//3.返回值型別

system.out.

print

(m.getreturntype()

.getname()

+"\t");

//4.方法名

system.out.

print

(m.getname()

);system.out.

print

("(");

//5.形參列表

class[

] parametertypes = m.

getparametertypes()

;if(!

(parametertypes == null && parametertypes.length ==0)

) system.out.

print

(parametertypes[i]

+"args_"

+ i +

",");}

} system.out.

print

(")");

//6.丟擲的異常

class[

] exceptiontypes = m.

getexceptiontypes()

;if(exceptiontypes.length>0)

system.out.

println

(exceptiontypes[i]

.getname()

+",");

}}system.out.

println()

;}}}

其他結構:

@test

public

void

test1()

system.out.

println()

;//獲取當前執行時類中宣告的所有的構造器

constructor[

] declaredconstructors = clazz.

getdeclaredconstructors()

;for

(constructor c: declaredconstructors

)}/*

獲取執行時類的父類

*/@test

public

void

test2()

/*獲取執行時類帶泛型的父類

*/@test

public

void

test3()

/*獲取執行時類帶泛型的父類的泛型

*/@test

public

void

test4()

反射獲取執行時類的結構

屬性 1.getfields 獲取當前執行時類及其父類中宣告為public訪問許可權的屬性 2.getdeclaredfields 獲取當前執行時類中宣告的所有屬性。不包含父類中宣告的屬性 4.getmodifiers 許可權修飾符 5.gettype 資料型別 6.getname 變數名 獲取執行...

反射獲取執行時類的完整結構

field method constructor superclass inte ce annotation 1 實現的全部介面 2 所繼承的父類 3 全部的構造器 4 全部的方法 5 全部的field public class getinte ces 確定此物件所表示的類或介面實現的介面。publ...

05 獲取執行時類的完整結構

1.實現的全部介面 public class getinte ces 確定此物件所表示的類或介面實現的介面。2.所繼承的父類 public class getsuperclass 返回表示此 class 所表示的實體 類 介面 基本型別 的父類的class。3.全部的構造器 public const...