反射知识点整理
来源:互联网 发布:linux mint 18.2 kde 编辑:程序博客网 时间:2024/05/18 00:24
目录(?)[-]
- 来自CODE的代码片ReflectDemojava
- 来自CODE的代码片Demo1java
- 来自CODE的代码片Demo2java
- 来自CODE的代码片Demo3java
动态获取类中信息,就是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
- 反射知识点整理
- 反射知识点整理
- Java反射知识点整理
- java 反射知识点整理
- 知识点整理
- 知识点整理
- 知识点整理
- 整理知识点
- java反射机制知识点
- Java反射机制知识点
- Java反射机制知识点
- 反射+注解 知识点
- 反射相关知识点小结
- 反射相关知识点小结
- Java反射知识点总结
- 反射知识点总结
- java反射知识点总结
- Java核心知识点-反射
- unity中的事件函数
- LeetCode-Subsets II
- SPOJ 13041 BNU 28769 The Black Riders 二分+网络流 建图
- Java线程:线程的交互
- 动态调用dll
- 反射知识点整理
- fread返回0或者不是期望的值,那么是否会读取到数据(如果数据没有读完的话),并改变了文件的指针位置?
- POI导出EXCEL文档
- Spring里用PropertyPlaceholderConfigurer类来解析java properties
- GIS地图在企业商业活动中的应用,不管你信不信这是趋势。
- OpenStack环境部署学习笔记——安装linux系统
- K&R的习题真难啊
- (白书训练计划)UVa 11134 Fabled Rooks(贪心)
- Java线程:线程的调度-休眠