一、JAVA的反射
在学习反射的时候就没太弄明白,现在看了一些资料认真学习一下,暂时记录此刻的笔记。
1、java反射的概念:
就是java程序运行时才确定哪个类被加载了,编译器不知道该加载哪个类。这种特点就是反射。反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
其实我们的本地IDE就是使用了这种机制,当我们敲入某个类名然后按下.点号的时候,自动会提示你有哪些类的属性方法可以使用。
2、java反射的作用:
反编译:.class -> java
访问一个类的所有信息:
—获取一个类的访问修饰符、成员、方法、构造方法以及超类的信息.
—检获属于一个接口的常量和方法声明.
—创建一个直到程序运行期间才知道名字的类的实例.
—获取并设置一个对象的成员,甚至这个成员的名字是
其实主要的作用两种:
一、扩展未知的应用,如在程序中定义了一些接口,只要实现了这些接口的dll都可以作为插件插入到这个程序中,那么要怎么实现,就可以通过反射,将dll加载进内存然后用反射的方式调用dll里面的方法。
二、加载配置文件,在编译器都无法知道类名,怎么使用死方法调用 new Classname();必须用到反射才能创建对象获取实例和方法。
3、常用的获取方法API