什么是反射?
正常场景下,java从源码到运行有3个阶段:
source class runtime
反射提供的是runtime阶段获取类的class实例、方法、属性、注解,并且能够调用类的方法的途径,这种动态获取类信息和调用类方法的机制被称之为反射
为什么要使用反射?
正常的实例化一个对象
ClassA objA = new ClassA();
objA.sayHello();
通过反射去实例化一个对象
ClassA objA = (ClassA)ClassA.class.newInstance();
Method method = objA.getMethod("sayHello");
method.invoke();
在source阶段实际上二者并无任何区别,反射也没有体现出任何的优势,那么任何一个java开发人员必然会问为