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 }
时间: 2024-09-30 14:14:39