[Java]反射指南一

Java反射机制可以让我们在编译期(Compile Time)之外的运行期(Runtime)检查类,接口,变量以及方法的信息。反射还可以让我们在运行期实例化对象,调用方法,通过调用get/set方法获取变量的值

Java反射机制功能强大而且非常实用。举个例子,你可以用反射机制把Java对象映射到数据库表,就像Butterfly Persistence所做的那样,或者把脚本中的一段语句在运行期映射到相应的对象调用方法上,就像 Butterfly Container在解析它的配置脚本时所做的那样。

目前在互联网上已经有不胜枚举的Java反射指南,然而大多数的指南包括Sun公司所发布的反射指南中都仅仅只是介绍了一些反射的表面内容以及它的潜能。

在这个系列的文章中,我们会比其他指南更深入的去理解Java反射机制,它会阐述Java反射机制的基本原理包括如何去使用数组,注解,泛型以及动态代理还有类的动态加载以及类的重载的实现。同时也会向你展示如何实现一些比较有特性的功能,比如从一个类中读取所有的get/set方法,或者访问一个类的私有变量以及私有方法。在这个系列的指南中同时也会说明一些非反射相关的但是令人困惑的问题,比如哪些泛型信息在运行时是有效的,一些人声称所有的泛型信息在运行期都会消失,其实这是不对的。

该系列文章中所描述介绍的是Java 7版本的反射机制。

Java反射的例子

  
  
  1.    public static void test1(){
  2.        Method[] methodArray = Student.class.getMethods();
  3.        for(Method method : methodArray){
  4.            System.out.println("method name ->" + method.getName());
  5.        }
  6.    }

输出信息:

  
  
  1. method name ->getAge
  2. method name ->setAge
  3. method name ->toString
  4. method name ->getName
  5. method name ->setName
  6. method name ->wait
  7. method name ->wait
  8. method name ->wait
  9. method name ->equals
  10. method name ->hashCode
  11. method name ->getClass
  12. method name ->notify
  13. method name ->notifyAll

在这个例子中通过调用Student类的class属性获取对应的Class类的对象,通过这个Class类的对象获取Student类中的方法集合。迭代这个方法的集合并且打印每个方法的名字。


原文:http://tutorials.jenkov.com/java-reflection/index.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值