反射知识点整理

来源:互联网 发布:linux mint 18.2 kde 编辑:程序博客网 时间:2024/05/18 00:24

目录(?)[-]

  1. 来自CODE的代码片ReflectDemojava
  2. 来自CODE的代码片Demo1java
  3. 来自CODE的代码片Demo2java
  4. 来自CODE的代码片Demo3java
         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

以上代码全部来自于毕向东老师讲解的反射
0 0