希望知道的人能解释下

解决方案 »

  1.   

    反射:Reflection 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。
    我现在就在写反射的程序,用到反射,则程序一定是开放性的。
    举个例子。
    比如我想写一个可随时拓展class文件并运行的程序,我如何知道这个用户拓展的class里面有多少方法的定义,多少属性的定义,都是怎样定义的。这个时候就要用到Reflection。
    你可以去看:sun.reflect.*的文档。
    这里有个关于反射的说明:http://www.128kj.com/article/article1/283647C0C6D45CAD557F9C129FD618B6.htm?id=1680
      

  2.   

    就是运行时对一个对象的结构包括属性,属性值,构造方法以及方法进行动态的分析,Java中的反射类都存放在java.lang.reflect.*中,包括Field、Method、Constructor类等。
      

  3.   

    反射就是把java的代码反射出来,相当与动态的调用,个人理解,呵呵
      

  4.   

    动态的意思是:
    我们常用的是java的loader功能,就是你写好的类,编译,运行的过程。
    但如果这个class是在程序运行中由用户动态添加的,你不会知道这个类的构造方法是什么,也许只知道类的存放位置,那么java就必须在运行过程中对代码进行分析和调用。
    这是就要用到reflector。
    所以使用反射的程序都是开放的,意思就在这里。
      

  5.   

    反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。