更新時(shí)間:2022-11-16 來(lái)源:黑馬程序員 瀏覽量:
在反射操作中,也可以獲取一個(gè)類中的全部屬性,但是類中的屬性包括兩部分,即從父類繼承的屬性和本類定義的屬性。因此,在獲取類的屬性時(shí)也有以下兩種不同的方式。
(1)獲取實(shí)現(xiàn)的接口或父類中的公共屬性:public Field[] getFields throws SecurityException。
(2)獲取本類中的全部屬性:public Field[]getDeclaredFields throws SecurityException。
上述兩種方法返回的都是Field數(shù)組,每一個(gè)Field對(duì)象表示類中的一個(gè)屬性。如果要獲取屬性的詳細(xì)信息,就需要調(diào)用Field類的方法。Field類的常用方法下所示。
(1)public int getModifiers()方法:得到本方法的修飾符。
(2)public String getName()方法:得到方法的名稱。
(3)public boolean isAccessible()方法:判斷此屬性是否被外部訪問(wèn)。
(4)public void setAccessible(Boolean flag)throws SecurityException:設(shè)置一個(gè)屬性是否可被外部訪問(wèn)。
(5)public String toString():返回此Field類的信息。
(6)public Object get(Object obj)throws lllegalArgument Exception,lllegalAccessException:得到一個(gè)對(duì)象中屬性的具體內(nèi)容。
(5)public void set(Object obj,Object value)throws lllegalArgument Exception,lllegalAccessException:設(shè)置指定對(duì)象中屬性的具體內(nèi)容。