Java反射机制

在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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值