# JAVA中getMethod()的问题

JAVA 反射 2019-03-29

# 概述

对于经常用到Java反射机制来实现业务的时候,会用到class.getMethod()方法:

Method Class.getMethod(String name, Class<?>... parameterTypes)

# 作用

getMethod()方法的作用是获得指定方法名称和类型参数的公开方法。其中...代表可变数组参数,可以直接以数组形式传递或者以多个参数依次传递。如果当前方法为非public方法,需要设置访问权限为true

method.setAccessible(true);

# 使用

比如在我的业务controller中定义了一个方法如下:

@ExtRequestMapping("/test")
	public String test(String name,Integer age) {
		System.out.println("hello world ...");
		return "index";
	}

# 调用

通过invoke来调用方法

	Class<? extends Object> classInfo = object.getClass();
	//Method method = classInfo.getMethod(methodName);  //无参数
	Method method = classInfo.getDeclaredMethod(methodName,String.class,Integer.class);
	Object result = method.invoke(object,"Jackie.Yang",30);