全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

Java反射機(jī)制:獲取全部屬性

更新時(shí)間:2022-11-16 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在反射操作中,也可以獲取一個(gè)類(lèi)中的全部屬性,但是類(lèi)中的屬性包括兩部分,即從父類(lèi)繼承的屬性和本類(lèi)定義的屬性。因此,在獲取類(lèi)的屬性時(shí)也有以下兩種不同的方式。

  (1)獲取實(shí)現(xiàn)的接口或父類(lèi)中的公共屬性:public Field[] getFields throws SecurityException。

  (2)獲取本類(lèi)中的全部屬性:public Field[]getDeclaredFields throws SecurityException。

  上述兩種方法返回的都是Field數(shù)組,每一個(gè)Field對(duì)象表示類(lèi)中的一個(gè)屬性。如果要獲取屬性的詳細(xì)信息,就需要調(diào)用Field類(lèi)的方法。Field類(lèi)的常用方法下所示。

  (1)public int getModifiers()方法:得到本方法的修飾符。

  (2)public String getName()方法:得到方法的名稱(chēng)。

  (3)public boolean isAccessible()方法:判斷此屬性是否被外部訪(fǎng)問(wèn)。

  (4)public void setAccessible(Boolean flag)throws SecurityException:設(shè)置一個(gè)屬性是否可被外部訪(fǎng)問(wèn)。

  (5)public String toString():返回此Field類(lèi)的信息。

  (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)容。

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!