更新時間:2020-02-21 12:41:53 來源:動力節點 瀏覽2134次
Java反射指的是對于任何的一個java類,我們都可以通過反射獲取到這個類的所有屬性和方法(包含私有的屬性方法),使用java反射我們也可以調用一個對象的任何方法。
我們知道Java是一門面向對象編程的語言,我們編程的時候,經常會將類的屬性進行封裝,然后提供public方法進行屬性的設置和獲取。類的屬性我們通常會設置成private的私有屬性,為的就是保護對象屬性不被隨意地修改和訪問。但是反射機制卻恰恰相反,通過反射,我們可以獲取到這些被保護的屬性和方法,并且可以修改和訪問他們。
在java中我們可以使用object對象的getClass();方法獲得Class的對象classObject;語法格式為ClassclassObject=object.getClass();可以根據Class對象的方法獲取object對象的相關屬性和方法;
獲取object對象的名字可以使用classObject.getName();獲取類的名稱,獲取到的結果包含包的名稱;
獲取object對象的包名稱,可以使用classObject.getPackage();獲取包的名稱;
獲取object對象的所有public屬性,可以使用classObject.getFields();方法,返回列表是屬性類Field[]對象列表;
獲取object對象所有屬性,可以使用classObject.getDeclaredFields();方法,返回的是所有屬性列表(包含private屬性);
獲取object對象某個特定的屬性,可以使用classObject.getField(fieldName);可以根據屬性名稱獲取屬性類的對象;
獲取object對象private屬性,可以使用classObject.getDeclaredField(fieldName);根據屬性名獲取屬性對象信息;
獲取object對象public方法,使用classObject.getMethods();可以獲取到方法類Method[]對象列表;
獲取object對象某個特定的public方法,使用classObject.getMethod(funName,Class……parameterTypes);根據方法名和方法參數類型列表,可以獲取到方法類的對象;
獲取object對象所有方法(包含private方法);使用classObject.getDeclaredMethods();可以獲取所有的方法對象列表;
獲取object對象某個特定方法(包含private方法),使用classObject.getDeclaredMethod(funName,Class……parameterTypes);根據方法名和方法參數類型列表,可以獲取到類的特定方法(包含private方法);
獲取object對象類中所有的public構造方法,可以使用classObject.getConstructors();獲取到構造類Constructor的對象列表;
獲取object對象類中某個特定的構造方法,可以使用classObject.getConstructor(Class……parameterTypes);根據參數類型列表,獲取指定的構造函數對象;
獲取object對象類中所有的構造方法(包含private),可以使用classObject.getDeclaredConstructors();獲取到構造類Constructor的對象列表;
獲取object對象類中某個特定的構造方法(包含private),可以使用classObject.getDeclaredConstructor(Class……parameterTypes);根據參數類型列表,獲取指定的構造函數對象;
以上就是動力節點Java培訓機構小編介紹的“Java語言培訓:Java編程語言反射”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關內容
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習