什么是反射?
反射赋予了我们在运行时分析类以及执行类中方法的能力。
通过反射你可以获取任意一个类的所有属性和方法,你还可以调用这些方法和属性。
反射的应用场景?
动态代理时会用到反射。
注解中也会用到反射(@Component、@Value)。
基于反射分析类,然后获取到类/属性/方法/方法的参数上的注解。你获取到注解之后,就可以做进一步的处理。
反射的优缺点?
优点:可以让代码更加灵活,为各种框架提供开箱即用的功能提供了便利。
缺点:在运行时有分析操作类的能力后,会不安全,无视泛型参数的安全检查(在编译阶段检查);反射的性能比较差,但对框架的影响不大。