反射是一个很强大的功能,但也有以下几个缺点:
1、使用反射会损失编译时类型检查的优势;
2、执行反射所需的代码非常笨拙冗长;
3、反射调用方法比普通调用方法会损失很多性能。
虽然Java可以通过private,protect,缺省,publice来限制其他类的访问,但Java还提供了反射reflect来突破这些限制从而访问那些正常情况下不能访问的类。对于反射我其实了解也仅限于知道Spring框架最重要的特性之一——控制反转IOC就是通过反射实现的。在平时工作中,我印象里是没有遇到过要用到反射的时候。
在使用反射的过程中每个字段、方法的调用都要重新去获得,代码的实现就会变得非常的麻烦。而且如果被反射的类发生了修改,只是增加可能还好,使用反射的地方不一定需要新增的内容,但如果是删除或者修改的情况下,使用反射的地方也需要随之更改,很容易出现遗漏的情况。