谈谈java的反射机制
java中的反射机制是指在运行时动态地获取一个类的信息,包括类的属性,方法,构造函数等,不需要事先知道这个类的具体实现。反射机制是实现动态语言的关键,也就是通过反射实现类动态加载。
(静态加载与动态加载:静态加载相关的类,如果没有就报错,依赖性太强。动态加载:运行时加载需要的类,如果运行时不用该类,即使不存在该类,则不报错,降低了依赖性)
反射的优点有:
- 反射机制极大的提高了程序的灵活性和扩展性,降低模块的耦合性,提高自身的适应能力,比如Class.forName(String className)就可以根据类名获取对应的类对象
- 通过反射机制可以让程序创建和控制任何类的对象,无需提前硬编码目标类
- 使用反射机制能够在运行时构造一个类的对象。判断一个类所具有的成员变量和方法、调用一个对象的方法
- 反射机制是构建框架技术的基础所在,使用反射可以避免将代码写死在框架中。
反射的缺点有: