您好,登錄后才能下訂單哦!
能解決
Java中編譯分為靜態編譯和動態編譯。
靜態編譯:在編譯時確定類型,綁定對象,即通過。
動態編譯:運行時確定類型,綁定對象。動態編譯最大限度發揮了java的靈活性,體現了多態的應用,從而降低類之間的藕合性。
能得到
實現Java反射機制的類都位于java.lang.reflect包中:
1、Class類:代表一個類
2、Field類:類的屬性(成員變量)
3、Method類:類的方法
4、Constructor類:代表類的構造方法
5、Array類:提供了動態創建數組,以及訪問數組的元素的靜態方法
?
使用步驟
第一步:Class c = Class.forName("className”);//className必須為全名,也就是得包含包名
???Object obj=c.newInstance();//創建對象的實例????第二步:獲取 Method:?? 3.1 如何獲取 Method:?? 1). getDeclaredMethods得到 Method 的數組.?? 2). getDeclaredMethod(String methondName, Class ... parameterTypes)????? 3.2 如何調用 Method?? 1). 如果方法時 private 修飾的, 需要先調用 Method 的 setAccessible(true), 使其變為可訪問?? 2). method.invoke(obj, Object ... args);????第三步:關于 Field:?? 4.1 如何獲取 Field: getField(String fieldName)?? 4.2 如何獲取 Field 的值:??? 1). setAccessible(true)?? 2). field.get(Object obj)?? 4.3 如何設置 Field 的值:?? field.set(Obejct obj, Object val)
參考:https://www.cnblogs.com/tech-bird/p/3525336.html???
各方案反射性能對比:https://www.cnblogs.com/zhishan/p/3195771.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。