Java 反射获取方法的访问权限、返回值、方法名、形参类型、所在类

代码

获取方法的访问权限、返回值、方法名、形参类型、所在类

// 方法所在的类名
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


原文出处:/show_1IX74NAw21gG.html