应用背景:
通常情况下,我们会有这种需求,尤其是在团队协作的情况下。我们不希望我们的一个类文件被团队的各个成员改来改去的,我们只希望该成员在某个包下面实现了某个类,然后,系统会自动的将这个类加入到系统里面。这样就能够实现物理解耦,这在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是类名