Jvav反射机制


 转载请注明出处:http://blog.csdn.net/yianemail/article/details/46840927


   反射(Reflection是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。

对于任意一个类,都可以知道该类的所有属性和方法,对于任意一个对象,都可以调用它的任意一个方法,这栋动态获取类信息以及动态调用对象的方法的功能称为java语言的反射机制。
一:反射机制的用途:
          在运行时判断任意一个对象所属的类
          在运行时构造任意一个类的对象
          在运行时判断任意一个类所具有的成员变量和方法
          在运行时调用任意一个对象的方法

二:反射的前传:类类型 Class Class
         Java中有一个很特殊的类,即 Class类,可以把它简单理解为该类封装了某类的该类信息。如果我们拿到了某个类的类型信息,就可以利用反射获取其成员变量以及成员方法了。也就是说, 我们要对某类作反射操作,要先拿到该类的Class信息。

     获得某类类信息有几种方法:

   //获得类类型的两种方式
Class cls1 = Role.class;
Class cls2 = Class.forName("该类的类全名");
三:反射的操作

     1,通过反射获取某个类的所有的成员属性,

  • public Field getDeclaredField(String name)  获取任意指定名字的成员
  • public Field[] getDeclaredFields()             获取所有的成员变量
  • public Field getField(String name)           获取任意public成员变量
  • public Field[] getFields()                          获取所有的public成员变量

来看例子代码,类test,

public class Test {

//两个成员变量

private Stringname;

private Stringpassword;

        //一个成员方法

public String getInfo(String test) {

return test;//返回传入的参数值

}

}

  编写测试类,我们在主类main中获取类Test的两个成员属性:


2,通过反射执行类Test的某个成员方法

  • public Method[] getMethods()    获取所有的共有方法的集合
  • public Method getMethod(String name,Class<?>... parameterTypes) 获取指定公有方法 参数1:方法名 参数2:参数类型集合  
  • public Method[] getDeclaredMethods()  获取所有的方法
  • public Method getDeclaredMethod(String name,Class<?>... parameterTypes) 获取任意指定方法
  编写测试类,我们在主类main中执行类test getInfo(String test)方法(返回传入的参数值)


public String getInfo(String test) {

return test;//返回传入的参数值

}



四:关于反射的一些总结

     使用反射。一般遵循以下三步:

     1,获得你想操作类的Class对象

     2,通Class对象去去的该类的属性或方法

     3,进行操作


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值