400-650-7353
您所在的位置:首頁 > IT干貨資料 > java > 【Java基礎(chǔ)知識】什么是Java反射

【Java基礎(chǔ)知識】什么是Java反射

  • 發(fā)布: java培訓(xùn)
  • 來源:Java干貨資料
  • 2019-12-13 17:26:37
  • 閱讀()
  • 分享
  • 手機(jī)端入口

Java反射指的是對于任何的一個java類,我們都可以通過反射獲取到這個類的所有屬性和方法(包含私有的屬性方法),使用java反射我們也可以調(diào)用一個對象的任何方法。

我們知道Java是一門面向?qū)ο缶幊痰恼Z言,我們編程的時候,經(jīng)常會將類的屬性進(jìn)行封裝,然后提供public方法進(jìn)行屬性的設(shè)置和獲取。類的屬性我們通常會設(shè)置成private的私有屬性,為的就是保護(hù)對象屬性不被隨意的修改和訪問。但是反射機(jī)制卻恰恰相反,通過反射,我們可以獲取到這些被保護(hù)的屬性和方法,并且可以修改和訪問他們。

在java中我們可以使用object對象的getClass();方法獲得Class的對象classObject;語法格式為 Class classObject = object.getClass() ;可以根據(jù)Class對象的方法獲取object對象的相關(guān)屬性和方法;

獲取object對象的名字可以使用 classObject.getName();獲取類的名稱,獲取到的結(jié)果包含包的名稱;

獲取object對象的包名稱,可以使用classObject.getPackage();獲取包的名稱;

獲取object對象的所有public屬性,可以使用classObject.getFields();方法,返回列表是屬性類Field[]對象列表;

獲取object對象所有屬性,可以使用classObject.getDeclaredFields();方法,返回的是所有屬性列表(包含private屬性);

獲取object對象某個特定的屬性,可以使用classObject.getField( fieldName );可以根據(jù)屬性名稱獲取屬性類的對象;

Java反射

獲取object對象private屬性,可以使用classObject.getDeclaredField( fieldName );根據(jù)屬性名獲取屬性對象信息;

獲取object對象public方法,使用classObject.getMethods();可以獲取到方法類Method[]對象列表;

獲取object對象某個特定的public方法,使用classObject.getMethod( funName , Class... parameterTypes);根據(jù)方法名和方法參數(shù)類型列表,可以獲取到方法類的對象;

獲取object對象所有方法(包含private方法);使用classObject.getDeclaredMethods();可以獲取所有的方法對象列表;

獲取object對象某個特定方法(包含private方法),使用classObject.getDeclaredMethod ( funName, Class... parameterTypes );根據(jù)方法名和方法參數(shù)類型列表,可以獲取到類的特定方法(包含private方法);

獲取object對象類中所有的public構(gòu)造方法,可以使用classObject.getConstructors(); 獲取到構(gòu)造類Constructor的對象列表;

獲取object對象類中某個特定的構(gòu)造方法,可以使用classObject.getConstructor( Class... parameterTypes ); 根據(jù)參數(shù)類型列表,獲取指定的構(gòu)造函數(shù)對象;

獲取object對象類中所有的構(gòu)造方法(包含private),可以使用classObject.getDeclaredConstructors(); 獲取到構(gòu)造類Constructor的對象列表;

獲取object對象類中某個特定的構(gòu)造方法(包含private),可以使用classObject.getDeclaredConstructor( Class... parameterTypes ); 根據(jù)參數(shù)類型列表,獲取指定的構(gòu)造函數(shù)對象;

 

文章“【Java基礎(chǔ)知識】什么是Java反射”已幫助

>>本文地址:http://liujunjsxg.cn/zhuanye/2019/48139.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營全域電商運(yùn)營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計室內(nèi)設(shè)計
  • 平面設(shè)計平面設(shè)計
  • 電商設(shè)計電商設(shè)計
  • 網(wǎng)頁設(shè)計網(wǎng)頁設(shè)計
  • 全鏈路UI/UE設(shè)計UI設(shè)計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開發(fā)智能機(jī)器人
 

快速通道fast track

近期開班時間TIME