java:反射(通过反射获取方法并使用)

package com.heima.reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

import com.heima.bean.Person;

public class Demo5_Method {
/*	* Class.getMethod(String, Class...) 和 Class.getDeclaredMethod(String, Class...)
 * 方法可以获取类中的指定方法,调用invoke(Object, Object...)可以调用该方法,Class.getMethod("eat") 
 * invoke(obj) Class.getMethod("eat",int.class) invoke(obj,10)
*/
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		Class clazz = Class.forName("com.heima.bean.Person");
		Constructor c = clazz.getConstructor(String.class,int.class);	//获取有参构造
		Person p = (Person) c.newInstance("张三",23);						//通过有参构造创建对象
		
		Method m=clazz.getMethod("eat");//获取eat方法
		m.invoke(p);//执行方法
		
		Method m2=clazz.getMethod("eat",int.class);//获取有参eat方法
		m2.invoke(p,3);//执行方法
		

	}

}

 

你可能感兴趣的:(java,java学习之路)