反射知识点整理

         JAVA反射机制是在运行状态中,对于任意一个类 (class文件),都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
         动态获取类中信息,就是java反射 。 可以理解为对类的解剖。 要想要对字节码文件进行解剖,必须要有字节码文件对象.
下面就是创建字节码文件对象的三种方法:

<a target=_blank id="L1" href="http://blog.csdn.net/takeheart94/article/details/39070799#L1" rel="#L1">  1</a>
<a target=_blank id="L2" href="http://blog.csdn.net/takeheart94/article/details/39070799#L2" rel="#L2">  2</a>
<a target=_blank id="L3" href="http://blog.csdn.net/takeheart94/article/details/39070799#L3" rel="#L3">  3</a>
<a target=_blank id="L4" href="http://blog.csdn.net/takeheart94/article/details/39070799#L4" rel="#L4">  4</a>
<a target=_blank id="L5" href="http://blog.csdn.net/takeheart94/article/details/39070799#L5" rel="#L5">  5</a>
<a target=_blank id="L6" href="http://blog.csdn.net/takeheart94/article/details/39070799#L6" rel="#L6">  6</a>
<a target=_blank id="L7" href="http://blog.csdn.net/takeheart94/article/details/39070799#L7" rel="#L7">  7</a>
<a target=_blank id="L8" href="http://blog.csdn.net/takeheart94/article/details/39070799#L8" rel="#L8">  8</a>
<a target=_blank id="L9" href="http://blog.csdn.net/takeheart94/article/details/39070799#L9" rel="#L9">  9</a>
<a target=_blank id="L10" href="http://blog.csdn.net/takeheart94/article/details/39070799#L10" rel="#L10"> 10</a>
<a target=_blank id="L11" href="http://blog.csdn.net/takeheart94/article/details/39070799#L11" rel="#L11"> 11</a>
<a target=_blank id="L12" href="http://blog.csdn.net/takeheart94/article/details/39070799#L12" rel="#L12"> 12</a>
<a target=_blank id="L13" href="http://blog.csdn.net/takeheart94/article/details/39070799#L13" rel="#L13"> 13</a>
<a target=_blank id="L14" href="http://blog.csdn.net/takeheart94/article/details/39070799#L14" rel="#L14"> 14</a>
<a target=_blank id="L15" href="http://blog.csdn.net/takeheart94/article/details/39070799#L15" rel="#L15"> 15</a>
<a target=_blank id="L16" href="http://blog.csdn.net/takeheart94/article/details/39070799#L16" rel="#L16"> 16</a>
<a target=_blank id="L17" href="http://blog.csdn.net/takeheart94/article/details/39070799#L17" rel="#L17"> 17</a>
<a target=_blank id="L18" href="http://blog.csdn.net/takeheart94/article/details/39070799#L18" rel="#L18"> 18</a>
<a target=_blank id="L19" href="http://blog.csdn.net/takeheart94/article/details/39070799#L19" rel="#L19"> 19</a>
<a target=_blank id="L20" href="http://blog.csdn.net/takeheart94/article/details/39070799#L20" rel="#L20"> 20</a>
<a target=_blank id="L21" href="http://blog.csdn.net/takeheart94/article/details/39070799#L21" rel="#L21"> 21</a>
<a target=_blank id="L22" href="http://blog.csdn.net/takeheart94/article/details/39070799#L22" rel="#L22"> 22</a>
<a target=_blank id="L23" href="http://blog.csdn.net/takeheart94/article/details/39070799#L23" rel="#L23"> 23</a>
<a target=_blank id="L24" href="http://blog.csdn.net/takeheart94/article/details/39070799#L24" rel="#L24"> 24</a>
<a target=_blank id="L25" href="http://blog.csdn.net/takeheart94/article/details/39070799#L25" rel="#L25"> 25</a>
<a target=_blank id="L26" href="http://blog.csdn.net/takeheart94/article/details/39070799#L26" rel="#L26"> 26</a>
<a target=_blank id="L27" href="http://blog.csdn.net/takeheart94/article/details/39070799#L27" rel="#L27"> 27</a>
<a target=_blank id="L28" href="http://blog.csdn.net/takeheart94/article/details/39070799#L28" rel="#L28"> 28</a>
<a target=_blank id="L29" href="http://blog.csdn.net/takeheart94/article/details/39070799#L29" rel="#L29"> 29</a>
<a target=_blank id="L30" href="http://blog.csdn.net/takeheart94/article/details/39070799#L30" rel="#L30"> 30</a>
<a target=_blank id="L31" href="http://blog.csdn.net/takeheart94/article/details/39070799#L31" rel="#L31"> 31</a>
<a target=_blank id="L32" href="http://blog.csdn.net/takeheart94/article/details/39070799#L32" rel="#L32"> 32</a>
<a target=_blank id="L33" href="http://blog.csdn.net/takeheart94/article/details/39070799#L33" rel="#L33"> 33</a>
<a target=_blank id="L34" href="http://blog.csdn.net/takeheart94/article/details/39070799#L34" rel="#L34"> 34</a>
<a target=_blank id="L35" href="http://blog.csdn.net/takeheart94/article/details/39070799#L35" rel="#L35"> 35</a>
<a target=_blank id="L36" href="http://blog.csdn.net/takeheart94/article/details/39070799#L36" rel="#L36"> 36</a>
<a target=_blank id="L37" href="http://blog.csdn.net/takeheart94/article/details/39070799#L37" rel="#L37"> 37</a>
<a target=_blank id="L38" href="http://blog.csdn.net/takeheart94/article/details/39070799#L38" rel="#L38"> 38</a>
<a target=_blank id="L39" href="http://blog.csdn.net/takeheart94/article/details/39070799#L39" rel="#L39"> 39</a>
<a target=_blank id="L40" href="http://blog.csdn.net/takeheart94/article/details/39070799#L40" rel="#L40"> 40</a>
<a target=_blank id="L41" href="http://blog.csdn.net/takeheart94/article/details/39070799#L41" rel="#L41"> 41</a>
<a target=_blank id="L42" href="http://blog.csdn.net/takeheart94/article/details/39070799#L42" rel="#L42"> 42</a>
<a target=_blank id="L43" href="http://blog.csdn.net/takeheart94/article/details/39070799#L43" rel="#L43"> 43</a>
<a target=_blank id="L44" href="http://blog.csdn.net/takeheart94/article/details/39070799#L44" rel="#L44"> 44</a>
<a target=_blank id="L45" href="http://blog.csdn.net/takeheart94/article/details/39070799#L45" rel="#L45"> 45</a>
<a target=_blank id="L46" href="http://blog.csdn.net/takeheart94/article/details/39070799#L46" rel="#L46"> 46</a>
<a target=_blank id="L47" href="http://blog.csdn.net/takeheart94/article/details/39070799#L47" rel="#L47"> 47</a>
<a target=_blank id="L48" href="http://blog.csdn.net/takeheart94/article/details/39070799#L48" rel="#L48"> 48</a>
<a target=_blank id="L49" href="http://blog.csdn.net/takeheart94/article/details/39070799#L49" rel="#L49"> 49</a>
<a target=_blank id="L50" href="http://blog.csdn.net/takeheart94/article/details/39070799#L50" rel="#L50"> 50</a>
<a target=_blank id="L51" href="http://blog.csdn.net/takeheart94/article/details/39070799#L51" rel="#L51"> 51</a>
<a target=_blank id="L52" href="http://blog.csdn.net/takeheart94/article/details/39070799#L52" rel="#L52"> 52</a>
<a target=_blank id="L53" href="http://blog.csdn.net/takeheart94/article/details/39070799#L53" rel="#L53"> 53</a>
<a target=_blank id="L54" href="http://blog.csdn.net/takeheart94/article/details/39070799#L54" rel="#L54"> 54</a>
<a target=_blank id="L55" href="http://blog.csdn.net/takeheart94/article/details/39070799#L55" rel="#L55"> 55</a>
<a target=_blank id="L56" href="http://blog.csdn.net/takeheart94/article/details/39070799#L56" rel="#L56"> 56</a>
<a target=_blank id="L57" href="http://blog.csdn.net/takeheart94/article/details/39070799#L57" rel="#L57"> 57</a>
<a target=_blank id="L58" href="http://blog.csdn.net/takeheart94/article/details/39070799#L58" rel="#L58"> 58</a>
<a target=_blank id="L59" href="http://blog.csdn.net/takeheart94/article/details/39070799#L59" rel="#L59"> 59</a>
<a target=_blank id="L60" href="http://blog.csdn.net/takeheart94/article/details/39070799#L60" rel="#L60"> 60</a>
<a target=_blank id="L61" href="http://blog.csdn.net/takeheart94/article/details/39070799#L61" rel="#L61"> 61</a>
<a target=_blank id="L62" href="http://blog.csdn.net/takeheart94/article/details/39070799#L62" rel="#L62"> 62</a>
<a target=_blank id="L63" href="http://blog.csdn.net/takeheart94/article/details/39070799#L63" rel="#L63"> 63</a>
<a target=_blank id="L64" href="http://blog.csdn.net/takeheart94/article/details/39070799#L64" rel="#L64"> 64</a>
<a target=_blank id="L65" href="http://blog.csdn.net/takeheart94/article/details/39070799#L65" rel="#L65"> 65</a>
<a target=_blank id="L66" href="http://blog.csdn.net/takeheart94/article/details/39070799#L66" rel="#L66"> 66</a>
<a target=_blank id="L67" href="http://blog.csdn.net/takeheart94/article/details/39070799#L67" rel="#L67"> 67</a>
<a target=_blank id="L68" href="http://blog.csdn.net/takeheart94/article/details/39070799#L68" rel="#L68"> 68</a>
<a target=_blank id="L69" href="http://blog.csdn.net/takeheart94/article/details/39070799#L69" rel="#L69"> 69</a>
<a target=_blank id="L70" href="http://blog.csdn.net/takeheart94/article/details/39070799#L70" rel="#L70"> 70</a>
<a target=_blank id="L71" href="http://blog.csdn.net/takeheart94/article/details/39070799#L71" rel="#L71"> 71</a>
<a target=_blank id="L72" href="http://blog.csdn.net/takeheart94/article/details/39070799#L72" rel="#L72"> 72</a>
<a target=_blank id="L73" href="http://blog.csdn.net/takeheart94/article/details/39070799#L73" rel="#L73"> 73</a>
<a target=_blank id="L74" href="http://blog.csdn.net/takeheart94/article/details/39070799#L74" rel="#L74"> 74</a>
<a target=_blank id="L75" href="http://blog.csdn.net/takeheart94/article/details/39070799#L75" rel="#L75"> 75</a>
<a target=_blank id="L76" href="http://blog.csdn.net/takeheart94/article/details/39070799#L76" rel="#L76"> 76</a>
          
          
package cn . itcast . reflect . demo ;
import cn.itcast.bean.Person ;
/*
*
* 如何获取字节码文件对象呢?
*
*/
public class ReflectDemo {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main ( String [] args ) throws ClassNotFoundException {
getClassObject_3 ();
}
/*
* 方式三:
* 只要通过给定的类的 字符串名称就可以获取该类,更为扩展。
* 可是用Class类中的方法完成。
* 该方法就是forName.
* 这种方式只要有名称即可,更为方便,扩展性更强。
*/
public static void getClassObject_3 () throws ClassNotFoundException {
String className = "cn.itcast.bean.Person" ;
Class clazz = Class . forName ( className );
System . out . println ( clazz );
}
/*
* 方式二:
* 2,任何数据类型都具备一个静态的属性.class来获取其对应的Class对象。
* 相对简单,但是还是要明确用到类中的静态成员。
* 还是不够扩展。
*
*/
public static void getClassObject_2 () {
Class clazz = Person . class ;
Class clazz1 = Person . class ;
System . out . println ( clazz == clazz1 );
}
/*
* 获取字节码对象的方式:
* 1,Object类中的getClass()方法的。
* 想要用这种方式,必须要明确具体的类,并创建对象。
* 麻烦 .
*
*/
public static void getClassObject_1 (){
Person p = new Person ();
Class clazz = p . getClass ();
Person p1 = new Person ();
Class clazz1 = p1 . getClass ();
System . out . println ( clazz == clazz1 );
}
}
来自CODE的代码片
ReflectDemo.java


创建了字节码文件对象之后,就需要使用对象去做一些事情,比如获取指定名称对应类中所体现的对象,获取其中的字段和获取其中的方法

1,获取指定名称对应类中所体现的对象

<a target=_blank id="L1" href="http://blog.csdn.net/takeheart94/article/details/39070799#L1" rel="#L1">  1</a>
<a target=_blank id="L2" href="http://blog.csdn.net/takeheart94/article/details/39070799#L2" rel="#L2">  2</a>
<a target=_blank id="L3" href="http://blog.csdn.net/takeheart94/article/details/39070799#L3" rel="#L3">  3</a>
<a target=_blank id="L4" href="http://blog.csdn.net/takeheart94/article/details/39070799#L4" rel="#L4">  4</a>
<a target=_blank id="L5" href="http://blog.csdn.net/takeheart94/article/details/39070799#L5" rel="#L5">  5</a>
<a target=_blank id="L6" href="http://blog.csdn.net/takeheart94/article/details/39070799#L6" rel="#L6">  6</a>
<a target=_blank id="L7" href="http://blog.csdn.net/takeheart94/article/details/39070799#L7" rel="#L7">  7</a>
<a target=_blank id="L8" href="http://blog.csdn.net/takeheart94/article/details/39070799#L8" rel="#L8">  8</a>
<a target=_blank id="L9" href="http://blog.csdn.net/takeheart94/article/details/39070799#L9" rel="#L9">  9</a>
<a target=_blank id="L10" href="http://blog.csdn.net/takeheart94/article/details/39070799#L10" rel="#L10"> 10</a>
<a target=_blank id="L11" href="http://blog.csdn.net/takeheart94/article/details/39070799#L11" rel="#L11"> 11</a>
<a target=_blank id="L12" href="http://blog.csdn.net/takeheart94/article/details/39070799#L12" rel="#L12"> 12</a>
<a target=_blank id="L13" href="http://blog.csdn.net/takeheart94/article/details/39070799#L13" rel="#L13"> 13</a>
<a target=_blank id="L14" href="http://blog.csdn.net/takeheart94/article/details/39070799#L14" rel="#L14"> 14</a>
<a target=_blank id="L15" href="http://blog.csdn.net/takeheart94/article/details/39070799#L15" rel="#L15"> 15</a>
<a target=_blank id="L16" href="http://blog.csdn.net/takeheart94/article/details/39070799#L16" rel="#L16"> 16</a>
<a target=_blank id="L17" href="http://blog.csdn.net/takeheart94/article/details/39070799#L17" rel="#L17"> 17</a>
<a target=_blank id="L18" href="http://blog.csdn.net/takeheart94/article/details/39070799#L18" rel="#L18"> 18</a>
<a target=_blank id="L19" href="http://blog.csdn.net/takeheart94/article/details/39070799#L19" rel="#L19"> 19</a>
<a target=_blank id="L20" href="http://blog.csdn.net/takeheart94/article/details/39070799#L20" rel="#L20"> 20</a>
<a target=_blank id="L21" href="http://blog.csdn.net/takeheart94/article/details/39070799#L21" rel="#L21"> 21</a>
<a target=_blank id="L22" href="http://blog.csdn.net/takeheart94/article/details/39070799#L22" rel="#L22"> 22</a>
<a target=_blank id="L23" href="http://blog.csdn.net/takeheart94/article/details/39070799#L23" rel="#L23"> 23</a>
<a target=_blank id="L24" href="http://blog.csdn.net/takeheart94/article/details/39070799#L24" rel="#L24"> 24</a>
<a target=_blank id="L25" href="http://blog.csdn.net/takeheart94/article/details/39070799#L25" rel="#L25"> 25</a>
<a target=_blank id="L26" href="http://blog.csdn.net/takeheart94/article/details/39070799#L26" rel="#L26"> 26</a>
<a target=_blank id="L27" href="http://blog.csdn.net/takeheart94/article/details/39070799#L27" rel="#L27"> 27</a>
<a target=_blank id="L28" href="http://blog.csdn.net/takeheart94/article/details/39070799#L28" rel="#L28"> 28</a>
<a target=_blank id="L29" href="http://blog.csdn.net/takeheart94/article/details/39070799#L29" rel="#L29"> 29</a>
<a target=_blank id="L30" href="http://blog.csdn.net/takeheart94/article/details/39070799#L30" rel="#L30"> 30</a>
           
           
/*
* 当获取指定名称对应类中的所体现的对象时,
* 而该对象初始化不使用空参数构造该怎么办呢?
* 既然是通过指定的构造 函数进行对象的初始化,
* 所以应该先获取到该构造函数。 通过字节码文件对象即可完成。
* 该方法是:getConstructor(paramterTypes);
*
*/
String name = "cn.itcast.bean.Person" ;
//找寻该名称类文件,并加载进内存,并产生Class对象。
Class clazz = Class . forName ( name );
//获取到了指定的构造函数对 象。
Constructor constructor = clazz . getConstructor ( String . class , int . class );
//通过该构造器对象的newInstance方法进行对象的初始化。
Object obj = constructor . newInstance ( "小明" , 38 );
//早期:new时候,先根据被new的类的名称找寻该类的字节码文件,并加载进内存,
//并创建该字节码文件对象,并接着创建该字节文件的对应的Person对象.
//cn.itcast.bean.Person p = new cn.itcast.bean.Person();
//现在:
String name = "cn.itcast.bean.Person" ;
//找寻该名称类文件,并加载进内存,并产生Class对象。
Class clazz = Class . forName ( name );
//如何产生该类的对象呢?
Object obj = clazz . newInstance ();
来自CODE的代码片
Demo1.java

2,获取其中的字段

<a target=_blank id="L1" href="http://blog.csdn.net/takeheart94/article/details/39070799#L1" rel="#L1">  1</a>
<a target=_blank id="L2" href="http://blog.csdn.net/takeheart94/article/details/39070799#L2" rel="#L2">  2</a>
<a target=_blank id="L3" href="http://blog.csdn.net/takeheart94/article/details/39070799#L3" rel="#L3">  3</a>
<a target=_blank id="L4" href="http://blog.csdn.net/takeheart94/article/details/39070799#L4" rel="#L4">  4</a>
<a target=_blank id="L5" href="http://blog.csdn.net/takeheart94/article/details/39070799#L5" rel="#L5">  5</a>
<a target=_blank id="L6" href="http://blog.csdn.net/takeheart94/article/details/39070799#L6" rel="#L6">  6</a>
<a target=_blank id="L7" href="http://blog.csdn.net/takeheart94/article/details/39070799#L7" rel="#L7">  7</a>
<a target=_blank id="L8" href="http://blog.csdn.net/takeheart94/article/details/39070799#L8" rel="#L8">  8</a>
<a target=_blank id="L9" href="http://blog.csdn.net/takeheart94/article/details/39070799#L9" rel="#L9">  9</a>
<a target=_blank id="L10" href="http://blog.csdn.net/takeheart94/article/details/39070799#L10" rel="#L10"> 10</a>
<a target=_blank id="L11" href="http://blog.csdn.net/takeheart94/article/details/39070799#L11" rel="#L11"> 11</a>
<a target=_blank id="L12" href="http://blog.csdn.net/takeheart94/article/details/39070799#L12" rel="#L12"> 12</a>
<a target=_blank id="L13" href="http://blog.csdn.net/takeheart94/article/details/39070799#L13" rel="#L13"> 13</a>
<a target=_blank id="L14" href="http://blog.csdn.net/takeheart94/article/details/39070799#L14" rel="#L14"> 14</a>
<a target=_blank id="L15" href="http://blog.csdn.net/takeheart94/article/details/39070799#L15" rel="#L15"> 15</a>
<a target=_blank id="L16" href="http://blog.csdn.net/takeheart94/article/details/39070799#L16" rel="#L16"> 16</a>
<a target=_blank id="L17" href="http://blog.csdn.net/takeheart94/article/details/39070799#L17" rel="#L17"> 17</a>
<a target=_blank id="L18" href="http://blog.csdn.net/takeheart94/article/details/39070799#L18" rel="#L18"> 18</a>
<a target=_blank id="L19" href="http://blog.csdn.net/takeheart94/article/details/39070799#L19" rel="#L19"> 19</a>
<a target=_blank id="L20" href="http://blog.csdn.net/takeheart94/article/details/39070799#L20" rel="#L20"> 20</a>
<a target=_blank id="L21" href="http://blog.csdn.net/takeheart94/article/details/39070799#L21" rel="#L21"> 21</a>
<a target=_blank id="L22" href="http://blog.csdn.net/takeheart94/article/details/39070799#L22" rel="#L22"> 22</a>
           
           
/*
* 获取字节码文件中的字段。
*/
public static void getFieldDemo () throws Exception {
Class clazz = Class . forName ( "cn.itcast.bean.Person" );
Field field = null ; //clazz.getField("age");//只能获取公有的,
field = clazz . getDeclaredField ( "age" ); //只获取本类,但包含私有。
//对私有字段的访问取消权限检查。暴力访问。
field . setAccessible ( true );
Object obj = clazz . newInstance ();
field . set ( obj , 89 );
Object o = field . get ( obj );
System . out . println ( o );
来自CODE的代码片
Demo2.java

3,获取其中的方法

<a target=_blank id="L1" href="http://blog.csdn.net/takeheart94/article/details/39070799#L1" rel="#L1">  1</a>
<a target=_blank id="L2" href="http://blog.csdn.net/takeheart94/article/details/39070799#L2" rel="#L2">  2</a>
<a target=_blank id="L3" href="http://blog.csdn.net/takeheart94/article/details/39070799#L3" rel="#L3">  3</a>
<a target=_blank id="L4" href="http://blog.csdn.net/takeheart94/article/details/39070799#L4" rel="#L4">  4</a>
<a target=_blank id="L5" href="http://blog.csdn.net/takeheart94/article/details/39070799#L5" rel="#L5">  5</a>
<a target=_blank id="L6" href="http://blog.csdn.net/takeheart94/article/details/39070799#L6" rel="#L6">  6</a>
<a target=_blank id="L7" href="http://blog.csdn.net/takeheart94/article/details/39070799#L7" rel="#L7">  7</a>
<a target=_blank id="L8" href="http://blog.csdn.net/takeheart94/article/details/39070799#L8" rel="#L8">  8</a>
<a target=_blank id="L9" href="http://blog.csdn.net/takeheart94/article/details/39070799#L9" rel="#L9">  9</a>
<a target=_blank id="L10" href="http://blog.csdn.net/takeheart94/article/details/39070799#L10" rel="#L10"> 10</a>
<a target=_blank id="L11" href="http://blog.csdn.net/takeheart94/article/details/39070799#L11" rel="#L11"> 11</a>
<a target=_blank id="L12" href="http://blog.csdn.net/takeheart94/article/details/39070799#L12" rel="#L12"> 12</a>
<a target=_blank id="L13" href="http://blog.csdn.net/takeheart94/article/details/39070799#L13" rel="#L13"> 13</a>
<a target=_blank id="L14" href="http://blog.csdn.net/takeheart94/article/details/39070799#L14" rel="#L14"> 14</a>
<a target=_blank id="L15" href="http://blog.csdn.net/takeheart94/article/details/39070799#L15" rel="#L15"> 15</a>
<a target=_blank id="L16" href="http://blog.csdn.net/takeheart94/article/details/39070799#L16" rel="#L16"> 16</a>
<a target=_blank id="L17" href="http://blog.csdn.net/takeheart94/article/details/39070799#L17" rel="#L17"> 17</a>
<a target=_blank id="L18" href="http://blog.csdn.net/takeheart94/article/details/39070799#L18" rel="#L18"> 18</a>
<a target=_blank id="L19" href="http://blog.csdn.net/takeheart94/article/details/39070799#L19" rel="#L19"> 19</a>
<a target=_blank id="L20" href="http://blog.csdn.net/takeheart94/article/details/39070799#L20" rel="#L20"> 20</a>
<a target=_blank id="L21" href="http://blog.csdn.net/takeheart94/article/details/39070799#L21" rel="#L21"> 21</a>
<a target=_blank id="L22" href="http://blog.csdn.net/takeheart94/article/details/39070799#L22" rel="#L22"> 22</a>
<a target=_blank id="L23" href="http://blog.csdn.net/takeheart94/article/details/39070799#L23" rel="#L23"> 23</a>
<a target=_blank id="L24" href="http://blog.csdn.net/takeheart94/article/details/39070799#L24" rel="#L24"> 24</a>
<a target=_blank id="L25" href="http://blog.csdn.net/takeheart94/article/details/39070799#L25" rel="#L25"> 25</a>
<a target=_blank id="L26" href="http://blog.csdn.net/takeheart94/article/details/39070799#L26" rel="#L26"> 26</a>
<a target=_blank id="L27" href="http://blog.csdn.net/takeheart94/article/details/39070799#L27" rel="#L27"> 27</a>
<a target=_blank id="L28" href="http://blog.csdn.net/takeheart94/article/details/39070799#L28" rel="#L28"> 28</a>
<a target=_blank id="L29" href="http://blog.csdn.net/takeheart94/article/details/39070799#L29" rel="#L29"> 29</a>
<a target=_blank id="L30" href="http://blog.csdn.net/takeheart94/article/details/39070799#L30" rel="#L30"> 30</a>
<a target=_blank id="L31" href="http://blog.csdn.net/takeheart94/article/details/39070799#L31" rel="#L31"> 31</a>
<a target=_blank id="L32" href="http://blog.csdn.net/takeheart94/article/details/39070799#L32" rel="#L32"> 32</a>
<a target=_blank id="L33" href="http://blog.csdn.net/takeheart94/article/details/39070799#L33" rel="#L33"> 33</a>
<a target=_blank id="L34" href="http://blog.csdn.net/takeheart94/article/details/39070799#L34" rel="#L34"> 34</a>
<a target=_blank id="L35" href="http://blog.csdn.net/takeheart94/article/details/39070799#L35" rel="#L35"> 35</a>
<a target=_blank id="L36" href="http://blog.csdn.net/takeheart94/article/details/39070799#L36" rel="#L36"> 36</a>
<a target=_blank id="L37" href="http://blog.csdn.net/takeheart94/article/details/39070799#L37" rel="#L37"> 37</a>
<a target=_blank id="L38" href="http://blog.csdn.net/takeheart94/article/details/39070799#L38" rel="#L38"> 38</a>
<a target=_blank id="L39" href="http://blog.csdn.net/takeheart94/article/details/39070799#L39" rel="#L39"> 39</a>
<a target=_blank id="L40" href="http://blog.csdn.net/takeheart94/article/details/39070799#L40" rel="#L40"> 40</a>
<a target=_blank id="L41" href="http://blog.csdn.net/takeheart94/article/details/39070799#L41" rel="#L41"> 41</a>
<a target=_blank id="L42" href="http://blog.csdn.net/takeheart94/article/details/39070799#L42" rel="#L42"> 42</a>
<a target=_blank id="L43" href="http://blog.csdn.net/takeheart94/article/details/39070799#L43" rel="#L43"> 43</a>
<a target=_blank id="L44" href="http://blog.csdn.net/takeheart94/article/details/39070799#L44" rel="#L44"> 44</a>
           
           
/*
* 获取指定Class中的所有公共函数。
*/
public static void getMethodDemo () throws Exception {
Class clazz = Class . forName ( "cn.itcast.bean.Person" );
Method [] methods = clazz . getMethods (); //获取的都是公有的方法。
methods = clazz . getDeclaredMethods (); //只获取本类中所有方法,包含私有。
for ( Method method : methods ){
System . out . println ( method );
}
}
public static void getMethodDemo_2 () throws Exception {
Class clazz = Class . forName ( "cn.itcast.bean.Person" );
Method method = clazz . getMethod ( "show" , null ); //获取空参数一般方法。
//Object obj = clazz.newInstance();
Constructor constructor = clazz . getConstructor ( String . class , int . class );
Object obj = constructor . newInstance ( "小明" , 37 );
method . invoke ( obj , null );
}
public static void getMethodDemo_3 () throws Exception {
Class clazz = Class . forName ( "cn.itcast.bean.Person" );
Method method = clazz . getMethod ( "paramMethod" , String . class , int . class );
Object obj = clazz . newInstance ();
method . invoke ( obj , "小强" , 89 );
}
来自CODE的代码片
Demo3.java

以上代码全部来自于毕向东老师讲解的反射
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值