更新時(shí)間:2020-10-22 17:06:00 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1456次
我們?cè)谇懊娴奈恼轮袑W(xué)習(xí)了java反射機(jī)制是什么的問題,相信大家對(duì)反射機(jī)制有了全面的理解。在java中使用反射機(jī)制,會(huì)提高程序的靈活性和擴(kuò)展性,還能節(jié)省資源,因此在java編程中使用好反射是重要的。今天來學(xué)習(xí)java反射field用法的內(nèi)容。
反射是一種常用的技術(shù)手段,通過加載類的字節(jié)碼的方式來獲取相關(guān)類的一些信息,比如成員變量、成員方法等。學(xué)習(xí)java反射field用法,要知道field是什么,Java反射Field是什么呢?Field是一個(gè)類,位于java.lang.reflect包下。在java反射field類描述的是類的屬性信息,功能包括:獲取當(dāng)前對(duì)象的成員變量的類型;對(duì)成員變量重新設(shè)置值。
Java反射field類如何使用呢?有四種方法可以獲取到field類對(duì)象,如下:
1、Class.getFields():獲取類中public類型的屬性, 返回一個(gè)包含某些field對(duì)象的數(shù)組,該數(shù)組包含此Class對(duì)象所表示的類或接口的所有可訪問公共字段。
2、getDeclaredFields():獲取類中所有屬性(public protect default private),但是不包括繼承的屬性,返回field對(duì)象的一個(gè)數(shù)組。
3、getField(String name):獲取類特定的方法,name 參數(shù)指定了屬性的名稱。
4、getDeclaredField(String name):獲取類特定的方法,name參數(shù)指定了屬性的名稱。
常用Java反射field用法的對(duì)象方法有:
1、獲取變量的類型
(1)Field.getType(): 返回這個(gè)變量的類型
(2)Field.getGenericType: 如果當(dāng)前屬性有簽名屬性類型就返回,否則就返回Field.getType()
(3)isEnumConstant(): 判斷這個(gè)屬性是否是枚舉類
2、 獲取成員變量的修飾符
Field.getModifiers():以整數(shù)形式返回此 Field 對(duì)象標(biāo)識(shí)的字段的java 語言修飾符。
3、獲取和修改成員變量的值
(1)getName():獲取屬性的名字
(2)get(Object obj):返回指定對(duì)象obj上此field表示的字段值
(3)set(Object obj, Object value);將指定對(duì)象變量上此field 對(duì)象表示的字段設(shè)置為指定的新值
4、isAnnotationPresent(Class annotationClass):如果該字段對(duì)象上有指定類型的注解,則返回true,否則為false
5、getAnnotation(Class annotationClass):如果該字段對(duì)象存在指定類型的注解,則返回該注解,否則返回null
總結(jié)下來,在java反射field用法就是描述類的屬性信息,field用法功能主要就是獲取當(dāng)前對(duì)象的成員變量的類型和對(duì)成員變量重新設(shè)值。
程序員們?cè)诰幊痰臅r(shí)候,會(huì)經(jīng)常出現(xiàn)需要對(duì)特定對(duì)象轉(zhuǎn)換成想要的json對(duì)象的情況,這個(gè)時(shí)候就會(huì)使用java反射field來實(shí)現(xiàn),所以java反射field用法是需要掌握的,希望大家可以認(rèn)真學(xué)習(xí),并通過相關(guān)的java教程來學(xué)習(xí)更多File類常用操作,提高自己的java技能。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743