Java反射机制

来源:互联网 发布:淘宝发布宝贝发布不了 编辑:程序博客网 时间:2024/06/11 09:24

在java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自java语言的反射机制(Reflection)
一、什么是反射?
反射就是指程序在运行时能够获取自身的信息,Java反射机制主要提供了以下功能:
1、在运行时获取任意一个对象所属的类
2、在运行时构造任意一个类的对象
3、在运行时判断任意一个类所具有的成员变量和方法
4、在运行时调用任意一个对象的方法
二、反射功能的具体实现
1、获取Class对象,有三种方式可以获取类的Class对象:

//1、使用Class类的静态方法forName(String "类名的全称")Class c = Class.forName("com.lwk.model.Student");//2、java中每个类型都有class属性Class c = Student.class;//3、java中每个类型都有一个getClass()方法Class c = Student.getClass();

2、获取Class对象以后,我们就需要用它其来创建其对应的实例对象

Class c = Class.forName("com.lwk.model.Student");Student stu = c.getInstance();

3、获取属性或者方法

Class c = Class.forName("com.lwk.model.Student");  //获取所有的属性  Field[] fs = c.getDeclaredFields();//获取单个属性(需要指定属性名)Filed f = c.getDeclaredFiled(String name);//获取所有的方法Method[] ms = c.getDeclaredMethods();//获取单个属性(需要指定方法名和参数类型列表)Method m = c.getDeclaredMethod(String name,Class<?>... parameterTypes);
0 0
原创粉丝点击