---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
反射
反射的概念是smith提出的程序可以对程序本身进行访问检测修改状态或行为的一种能力.这个概念的提出很快被计算机科学领域对其应用的研究.
这个概念首先被程序设计在程序中得到应用.如OpenJava等就是基于反射的语言.反射这个词很容易让人联想到我们熟悉的光的反射,虽然程序中的反射并不是光
那样可以通过介质来反射,但从某种意义上来说是相通的.在java中也对反射概念有了自己特殊的应用,一个类可以通过反射访问本类成员变量field和内部类class
注解annotation,检测或执行成员方法method(不论是public还是private的).
java中反射的技术应用的不是很多,特别是我们a在做JEE开发时,但是安卓开或者java框架工具开发就很常用了,而且功能很是强大,使程序的动态能力大大增强.
所以java反射技术在java中也是一门很重要的课程.
java中反射的概述
java中的反射机制,可以访问类的成员变量内部类注解和执行成员方法.那么java反射中都需要什么类呢?
1,Class Class就是描述字节码class文件的类,向外界提供了很多方法,如getMethod(String name,Class parameteType...)指定方法名和方法参数类型获取给方法对象等...
Class对象获取方法有三种,如:
(1)Class class=C.class;//通过类的class属性获取该类的Class对象.
(2)Class class=c.getClass();//通过对象c的getClass()方法获取Class
(3)Class class=Class.forName("class文件的路径");//通过Class类提供的forName(String src)方法获取class文件对象的Class类型对象
2,Method Method就是描述类中public和private修饰的方法的类.在Class对象中通过getMethod(String name,Class parameterType...)获取,
如果有该方法则返回该方法的Method描述对象,如果没有则返回null.注意此方法只能获取被public修饰的方法,如果方法是private或者protected修饰的话
该方法会报java.lang.NoSuchMethodException异常,因为getMethod方法是获取类中已经定义的方法对象,必须有public修饰.如果是private或者protected
类型方法的就用getDeclaredMethod(String name,Class parameterType... )获取对应方法对象或者