Java知识整理——反射
生活随笔
收集整理的這篇文章主要介紹了
Java知识整理——反射
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要功能就是可以根據一個類的名稱來創建一個類的實例,并調用實例的方法。
我們通常情況下創建一個類實例的方法,就是new ABC()這樣的方式來創建,那為什么還要用反射繞一大圈呢?因為反射可以讓ABC這個具體的類,在運行的時候指定,例如可以通過傳參的方式指定進來,比如我們傳一個參數ABC就可以創建ABC這個類,也可以傳遞其他參數來創建DEF這個類。
直接貼代碼
PS:關于大小寫class,”class”是java的關鍵字,用來定義一個類的;而”Class”本身就是一個類,用來實現和類相關的操作,比如類加載等。
PS2:關于”Class.forName”,實際包含3個操作:loading(裝載),linking(連接)和initializing(實例化)
3. 獲取所有定義的方法:
感謝網友wangfan_work的補充,可以采用getDeclaredMethod()來獲取的是類自身聲明的所有方法,包含public、protected和private方法。
當此方法是private等修飾導致沒有訪問權限時,還得壓制訪問權限setAccessible(true);
而getMethod()獲取的是類的所有共有方法,也就是自身的所有public方法和從基類繼承的、從接口實現的所有public方法。
總結
以上是生活随笔為你收集整理的Java知识整理——反射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring工作原理分析
- 下一篇: 也谈Spring MVC