`

JAVA之反射机制

阅读更多


i.概念:
  JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
  ii.反射的作用:
  [1]可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型
  [2]应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射。
  [3]反射主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能。
  iii.应用点:
  [1]现实应用程序中很少有应用程序需要使用反射类型
  [2]使用反射动态绑定需要牺牲性能
  [3]有些元数据信息是不能通过反射获取的
  [4]某些反射类型是专门为那些clr 开发编译器的开发使用的,所以你要意识到不是所有的反射类型都是适合每个人的。
  iv.反射的性能:
  使用反射来调用类型或者触发方法,或者访问一个字段或者属性时CLR需 要做更多的工作:校验参数,检查权限等等,所以速度是非常慢的。所以尽量不要使用反射进行编程,对于打算编写一个动态构造类型(晚绑定)的应用程序,可以采取以下的几种方式进行代替:
  [1]通过类的继承关系。让该类型从一个编译时可知的基础类型派生出来,在运行时生成该类 型的一个实例,将对其的引用放到其基础类型的一个变量中,然后调用该基础类型的虚方法。
  [2]通过接口实现。在运行时,构建该类型的一个实例,将对其的引用放到其接口类型的一个变量中,然后调用该接口定义的虚方法。
  [3]通过委托实现。让该类型实现一个方法,其名称和原型都与一个在编译时就已知的委托相符。在运行时先构造该类型的实例,然后在用该方法的对象及名称构造出该委托的实例,接着通过委托调用你想要的方法。这个方法相对与前面两个方法所作的工作要多一些,效率更低一些
使用场景:
在主工程中调用插件工程的某个方法时,需要使用反射机制。
使用步骤:
取得要调用类的class
取得要调用的类中将执行的方法(Method)
方法调用(invoke) 
代码示例:
Class cls = Class.forName("chb.test.reflect.Student");   
Method m = cls.getDeclaredMethod("hi",new Class[]{int.class,String.class});   
m.invoke(cls.newInstance(),20,"chb");
0
0
分享到:
评论

相关推荐

    java反射机制.zip

    java反射机制java反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制.zipjava反射机制...

    Java反射机制 Java反射机制

    Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制Java反射机制

    JAVA 反射机制应用

    JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用JAVA 反射机制应用

    Java中的反射机制

    Java中的反射机制Java中的反射机制Java中的反射机制

    Java反射机制课件ppt

    Java反射机制Java反射机制Java反射机制Java反射机制

    JAVA的反射机制与动态代理

    JAVA的反射机制与动态代理

    java反射机制原理和反射机制总结

    java反射机制原理和反射机制总结!!! java反射机制原理和反射机制总结!!!

    java反射机制源码

    java反射机制源码java反射机制源码java反射机制源码

    Java 1.5 反射机制

    Java反射机制是1.5新增的功能,希望大家能学习愉快!

    Java反射机制总结

    这是一本关于Java反射机制论文集合的书。其中包含基本的理论及各种实例。 所有文章均从网络途径获得,本人只作收集整理的工作,个别地方有改动。每篇文章的标题遵循原作者的表述,本人不再作任何更改。 关键字有:...

    反射实例-JAVA反射机制.doc

    反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc反射实例-JAVA反射机制.doc...

    JAVA反射机制应用

    描述JAVA反射机制应用、举例。描述反射机制的具体实现及方法实现。

    java 反射机制详解

    比较详细讲述了java的反射机制,收获颇丰。希望大家能够共同学习,一起进步。

    java 反射机制

    java 反射机制深入理解,java 反射机制深入理解,java 反射机制深入理解,

    java反射机制demo

    给同事写的反射机制的用法,非常简单易用,大家一看就懂。也便于初学者对反射机制的理解 资源免费提供大家下载,如有疑问,可以直接咨询我

    java反射机制详解

    java反射机制的详细描述

    Java反射机制经典案例

    Java 反射机制、Java 的类反射机制、Java 反射机制的学习、Java 反射Reflection--运行时生成实例 java反射机制的手册文档

    Java 反射机制 代码的实例

    Java 反射机制 代码的实例 请认真阅读 运行此代码 只要读懂了 反射机制也就明白了

    JAVA的反射机制与动态代理.pdf

    JAVA的反射机制与动态代理运行时类型信息(RunTime Type Information,RTTI)使得你在程序运行时发现和使用类型 信息。RTTI主要用来运行时获取向上转型之后的对象到底是什么具体的类型。

Global site tag (gtag.js) - Google Analytics