更新時間:2020-10-22 17:06:00 來源:動力節(jié)點 瀏覽1543次
我們在前面的文章中學(xué)習了java反射機制是什么的問題,相信大家對反射機制有了全面的理解。在java中使用反射機制,會提高程序的靈活性和擴展性,還能節(jié)省資源,因此在java編程中使用好反射是重要的。今天來學(xué)習java反射field用法的內(nèi)容。
反射是一種常用的技術(shù)手段,通過加載類的字節(jié)碼的方式來獲取相關(guān)類的一些信息,比如成員變量、成員方法等。學(xué)習java反射field用法,要知道field是什么,Java反射Field是什么呢?Field是一個類,位于java.lang.reflect包下。在java反射field類描述的是類的屬性信息,功能包括:獲取當前對象的成員變量的類型;對成員變量重新設(shè)置值。
Java反射field類如何使用呢?有四種方法可以獲取到field類對象,如下:
1、Class.getFields():獲取類中public類型的屬性, 返回一個包含某些field對象的數(shù)組,該數(shù)組包含此Class對象所表示的類或接口的所有可訪問公共字段。
2、getDeclaredFields():獲取類中所有屬性(public protect default private),但是不包括繼承的屬性,返回field對象的一個數(shù)組。
3、getField(String name):獲取類特定的方法,name 參數(shù)指定了屬性的名稱。
4、getDeclaredField(String name):獲取類特定的方法,name參數(shù)指定了屬性的名稱。
常用Java反射field用法的對象方法有:
1、獲取變量的類型
(1)Field.getType(): 返回這個變量的類型
(2)Field.getGenericType: 如果當前屬性有簽名屬性類型就返回,否則就返回Field.getType()
(3)isEnumConstant(): 判斷這個屬性是否是枚舉類
2、 獲取成員變量的修飾符
Field.getModifiers():以整數(shù)形式返回此 Field 對象標識的字段的java 語言修飾符。
3、獲取和修改成員變量的值
(1)getName():獲取屬性的名字
(2)get(Object obj):返回指定對象obj上此field表示的字段值
(3)set(Object obj, Object value);將指定對象變量上此field 對象表示的字段設(shè)置為指定的新值
4、isAnnotationPresent(Class annotationClass):如果該字段對象上有指定類型的注解,則返回true,否則為false
5、getAnnotation(Class annotationClass):如果該字段對象存在指定類型的注解,則返回該注解,否則返回null
總結(jié)下來,在java反射field用法就是描述類的屬性信息,field用法功能主要就是獲取當前對象的成員變量的類型和對成員變量重新設(shè)值。
程序員們在編程的時候,會經(jīng)常出現(xiàn)需要對特定對象轉(zhuǎn)換成想要的json對象的情況,這個時候就會使用java反射field來實現(xiàn),所以java反射field用法是需要掌握的,希望大家可以認真學(xué)習,并通過相關(guān)的java教程來學(xué)習更多File類常用操作,提高自己的java技能。