應用背景:
通常情況下,我們會有這種需求,尤其是在團隊協作的情況下。我們不希望我們的一個類文件被團隊的各個成員改來改去的,我們只希望該成員在某個包下面實現了某個類,然後,系統會自動的將這個類加入到系統裏面。這樣就能夠實現物理解耦,這在git或者svn這種版本管理器上是解決衝突的不二之選。
1.一個最簡單的反射操作
1.你需要獲取到該類的包和該類的名字
2.你需要將之反射爲Class<?>對象
3.你需要去獲取它的構造函數Constructor<?> cons
4.現在,你可以實例化它。
Class<?> cls = Class.forName("com.netty.controller.timer.BaseTimer"); // 取得Class對象
Constructor<?> cons = cls.getConstructor();
Object obj = cons.newInstance();
注意這裏的com.netty.controller.timer是包名BaseTimer是類名