(一)前篇注意:
①:Class对象是所有反射API的入口。(Class类是泛型类)
(二)反射概念what?:
①:反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且可以操作内部的成员信息。
(三)为什么 why?:
优点:①能够在运行时获取实例,灵活性和拓展性增强;帮我们做重复的事情【eg:dao类型的增删改查】
②与Java动态编译结合,功能强大。
缺点:①使用反射的性能较低 【无法执行某些JVM优化】
②使用反射相对来说不安全 【可能需要安全管理器运行时,可能不存在的运行权限】
③破坏了类的封装(可以通过反射获取这个类的私有方法和属性) 【内部曝光】
(四)应用的列子:
①JavaBean 是 reflection 的实际应用之一。【帮我们做那些重复的事情,eg dao类】
②三大框架就应用了反射机制。
(五)怎么用 how?:【所有类的对象都是Class实例】
①根据对象获得完整的包名和类名
②框架中SSM,SSH中一些web.xml等文件的加载。
③JavaBean的实现。