首页 > 代码库 > java基础:反射机制

java基础:反射机制

一:定义

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

二:使用场景
一般用在框架的封装上。hibernate、struts都是用反射机制实现的。 
 举例:JDBC中加载数据库驱动Class.forName("com.mysql.jdbc.Driver"); 

三:优点
反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性。
假如我们有两个程序员,一个程序员在写程序的时候,需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码能否通过编译呢?这是不能通过编译的。利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。

四:常用方法
    获得构造函数的方法 
    Constructor getConstructor(Class[] params)//根据指定参数获得public构造器
    Constructor getDeclaredConstructor(Class[] params)//根据指定参数获得public和非public的构造器

    获得类方法的方法 
    Method getMethod(String name, Class[] params),根据方法名,参数类型获得方法
    Method getDeclaredMethod(String name, Class[] params)//根据方法名和参数类型,获得public和非public的方法

    获得类中属性的方法 
    Field getField(String name)//根据变量名得到相应的public变量
    Field getDeclaredField(String name)//根据方法名获得public和非public变量

五:代码举例

<script src="https://code.csdn.net/snippets/587775.js" type="text/javascript"></script>

<script src="https://code.csdn.net/snippets/587776.js" type="text/javascript"></script>

<script src="https://code.csdn.net/snippets/587778.js" type="text/javascript"></script>


test1执行结果:
技术分享


test2执行结果
技术分享





java基础:反射机制