Java反射《四》获取方法

 1 package com.study.reflect;
 2 
 3 import java.lang.reflect.InvocationTargetException;
 4 import java.lang.reflect.Method;
 5 
 6 import org.omg.Dynamic.Parameter;
 7 /**
 8  * 反射,获取方法
 9  * @ClassName: MethodDemo 
10  * @author liChao
11  * @date 2017年9月10日 下午4:25:21
12  */
13 public class MethodDemo {
14 
15     public static void main(String[] args) throws NoSuchMethodException,
16     SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
17         Class c = Student.class;
18         // c.getMethods(),获得所有的public修饰的方法,包括从父类那继承来的。
19         Method[] m1 = c.getMethods();
20         for(Method m:m1){
21             String name = m.getName();
22             System.out.print("方法名:"+name);
23             Class[] para = m.getParameterTypes();
24             for(Class cl:para){
25                 System.out.print("--"+cl.getName()+"...");
26             }
27             System.out.println();
28         }
29         //通过方法名、参数类型,获取方法
30         Method m2 = c.getMethod("setName", String.class);
31         //通过类创建实例
32         Object obj = c.newInstance();
33         m2.invoke(obj, "张飞");
34         System.out.println(obj);//Student [name=张飞, age=0]
35         
36         
37     }
38 }

 

posted @ 2017-09-10 16:25  溪山晴雪  阅读(130)  评论(0编辑  收藏  举报