—转载自 汉森X----------https://blog.youkuaiyun.com/xu_cg/article/fetails/52877573
反射机制是java动态性之一,了解动态语言:是指程序运行的时候可以改变其结构,新的函数可以引进,已有的函数可以被删除等结构上的变化,JavaScript就是动态语言,除此之外Ruby,Python也是,C/C++不是。
java语言因为有一个非常突出的动态机制:反射机制,可以在程序运行时加载,探知和使用编译期间完全未知的类,并且可以生成相关类对象实例,从而可以调用其方法或改变某个属性值,所以java是半动态。
1.反射机制概念
动态获取信息以及动态调用对象方法的功能。
2。应用场合
java程序中许多对象在运行时都会出现两种类型:编译时类型和运行时类型
编译时类型由声明对象时实用的类型来决定,运行时的类型由实际赋值给对象的类型来决定。
如: person p = new Student();
其中编译时类型为Person,运行时类型为Student。程序在运行时还可能收到外部传入的对象,该对象编译时类型为Object,但是程序有时需要调用该对象的运行时类型方法,为了解决程序需要在运行时发现对象和类的真实信息。
3.java反射API
用来生成JVM中的类,接口,或者对象信息。
class类核心类,获取类的属性方法
Filed类
Method类
constructor类
4.使用反射步骤
*获取险要操作的类的Class对象
*调用Class类中的方法
*使用反射API来操作这些信息
更加详细可以看链接-----敬业的小码哥—https://blog.youkuaiyun.com/sinat_38259539/article/details/71799078