代码
获取方法的访问权限、返回值、方法名、形参类型、所在类
// 方法所在的类名
Class<?> clazz = method.getDeclaringClass();
String className = clazz.getName();
// 方法名
String methodName = method.getName();
// 访问权限
String modifier = Modifier.toString(method.getModifiers());
// 返回值类型的名字
String retTypeOfMethod = method.getReturnType().getName();
// 方法形参类型名
Class<?>[] parameterTypes = method.getParameterTypes();
for(Class item : parameterTypes){
System.out.println(item.getName();
}
获取 方法的全名
格式:访问权限 返回值 类全路径.方法名(形参类型全名1,形参类型全名2)
/**
* 获取 方法的全名
* 格式:访问权限 返回值 类全路径.方法名(形参类型全名1,形参类型全名2)
* @param method
* @return
*/
public static String getAllNameOfMethod(Method method){
StringBuilder ret = new StringBuilder();
String modifier = Modifier.toString(method.getModifiers());
String retTypeOfMethod = method.getReturnType().getName();
ret.append(modifier);
ret.append(" ");
ret.append(retTypeOfMethod);
ret.append(" ");
Class<?> clazz = method.getDeclaringClass();
ret.append(clazz.getName());
ret.append(".");
ret.append(method.getName());
ret.append("(");
Class<?>[] parameterTypes = method.getParameterTypes();
for(Class item : parameterTypes){
ret.append(item.getName());
ret.append(",");
}
int length = ret.length();
ret.delete(length-1,length);
ret.append(")");
return ret.toString();
}
参考:
https://blog.csdn.net/chenzitian6058/article/details/115217269