反射是什么意思?有什么作用?谢谢!

解决方案 »

  1.   


    反射也就是说,在编译时,你获取了一个指向某个并不存在你的程序空间中的对象的引用;事实上在编译时你的程序无法获知这个对象所属的类.
    java附带的库java.lang.reflect包含了FIeld,Method,Constructor类.这些类型的对象是由jvm在运行时创建的,用以表示未知类里对应的成员.你就可以使用Constructor创建新的对象,用get()和set()方法读取和修改与Field对象关联的字段,用invoke()方法调用与Method对象关联的方法.^_^其他的去翻一下jdk文档吧!
    1 .
    •Constructor getConstructor(Class[] params) -- 获得使用特殊的参数类型的公共构造函数, 
    •Constructor[] getConstructors() -- 获得类的所有公共构造函数 
    •Constructor getDeclaredConstructor(Class[] params) -- 获得使用特定参数类型的构造函数(与接入级别无关) 
    •Constructor[] getDeclaredConstructors() -- 获得类的所有构造函数(与接入级别无关) 
    2.
    •Field getField(String name) -- 获得命名的公共字段 
    •Field[] getFields() -- 获得类的所有公共字段 
    •Field getDeclaredField(String name) -- 获得类声明的命名的字段 
    •Field[] getDeclaredFields() -- 获得类声明的所有字段 
    3.
    •Method getMethod(String name, Class[] params) -- 使用特定的参数类型,获得命名的公共方法 
    •Method[] getMethods() -- 获得类的所有公共方法 
    •Method getDeclaredMethod(String name, Class[] params) -- 使用特写的参数类型,获得类声明的命名的方法 
    •Method[] getDeclaredMethods() -- 获得类声明的所有方法 
     
      

  2.   

    反射说简单一点就是 给你原料,要你把一个东西表现出来不过JAVA中是用来对已经存在,但是你不知道到底是什么东西,来进行重新构造