類映象的使用1 類資訊的獲取

2021-08-25 14:14:22 字數 4042 閱讀 7759

1.獲得該類所處的包的資訊

student s = new student();

class c = s.getclass();

system.out

.println(c.getpackage().getname());

2.獲得該類的修飾符資訊

//每個修飾符對應乙個int值

//如果有多個修飾符則int值相加

student s = new student();

class c = s.getclass();

system.out

.println(c.getmodifiers());

system.out

.println(modifier.public);

system.out

.println(modifier.final);

3.獲得該類的名字

student s = new student();

class c = s.getclass();

system.out

.println(c.getname());

4.獲得該類的父類的class物件

student s = new student();

class c = s.getclass();

//superclass表示其父型別的class物件

class superclass = c.getsuperclass();

system.out.println(superclass.getname());

例如:class c = object.class;

class superclass = c.getsuperclass();

system.out.println(superclass.getname());

//執行報錯,因為object沒有父類

例如://判斷c1是不是c2的子型別

//判斷c3是不是c2的子型別

class c1 = student.class;

class c2 = person.class;

class c3 = string.class

system.out.println(c2.isassignablefrom(c1));//true

system.out.println(c2.isassignablefrom(c3));//false

5.獲得該類所實現的介面型別的class物件

student s = new student();

class c = s.getclass();

class inte***ces = c.getinte***ces();

for(class clazz:inte***ces)

例如://判斷c1是不是c2的實現類

//判斷c3是不是c2的實現類

class c1 = student.class;

class c2 = action.class;

class c3 = string.class

system.out.println(c2.isassignablefrom(c1));//true

system.out.println(c2.isassignablefrom(c3));//false

6.獲得該類中所有的屬性

student s = new student();

class c = s.getclass();

field declaredfields = c.getdeclaredfields();

for(field f:declaredfields)

注:getdeclaredfields()方法返回類中宣告的屬性,包括私有的

getfields()方法只返回類中public修飾的屬性,包括繼承的

例如://獲得某個指定的屬性(也包括私有屬性)

student s = new student();

class c = s.getclass();

field f = c.getdeclaredfield("score");

system.out

.println(f.getmodifiers());

system.out

.println(f.gettype().getname());

system.out

.println(f.getname());

7.獲得該類中所有的方法

student s = new student();

class c = s.getclass();

method declaredmethods = c.getdeclaredmethods

();for(method

m:declaredmethods)

注:getdeclaredmethods()方法返回類中宣告的方法,包括私有的

getmethods()方法只返回類中public修飾的方法,包括繼承的

例如://獲得某個指定的方法(也包括私有方法)

student s = new student();

class c = s.getclass();

method

m = c.getdeclaredmethod

("print");

system.out.println(m.getmodifiers());

system.out.println(m.getreturntype().getname());

system.out.println(m.getname());

system.out.println(arrays.tostring(m.getparametertypes()));

system.out.println(arrays.tostring(m.getexceptiontypes()));

8.獲得該類中所有的構造器

student s = new student();

class c = s.getclass();

constructor declaredconstructors = c.getdeclaredconstructors

();for(constructor

con:declaredconstructors)

注:getdeclaredconstructors()方法返回類中所有構造器

getconstructors()方法只返回類中public修飾的構造器

例如://獲得某個指定的構造器(也包括私有構造器)

student s = new student();

class c = s.getclass();

constructor

con = c.getdeclaredconstructor

(double.class);

system.out.println(con.getmodifiers());

system.out.println(con.getname());

system.out.println(arrays.tostring(con.getparametertypes()));

system.out.println(arrays.tostring(con.getexceptiontypes()));

public

void

test()

public

void

test1()

//獲取修飾符

int n=c.getmodifiers();

system.out.println(modifier.tostring(n));

system.out.println(c.getname());

}

注:本文**中封裝子類class和父類parent並未給出。

類的解剖(獲取類的定義資訊)

獲取類的方法 method 獲取類中的方法的資訊 getmethods 獲取當前類及其父類宣告的public方法 getdeclaremethods 獲取當前類宣告的所有方法,包括private和public 獲取類的構造方法 construct 獲取類中的方法的資訊 getconstructors...

類的解剖(獲取類的定義資訊)

解析普通的方法 test public void fetchmethods throws exception 獲取泛型 m.getgenericreturntype 返回型別中的泛型 class m.getexceptiontypes 異常中的泛型 class m.getgenericparamet...

獲取類的物件資訊

首先你有乙個command.py檔案,內容如下,這裡我們假若它後面還有100個方法 class myobject object def init self self.x 9 def add self return self.x self.x def pow self return self.x se...