欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

怎么获取类的所有方法签名

程序员文章站 2022-06-14 21:06:43
...

方法代码:

public class MethodSign<T> {
    public void printMethodSign(T t) {
        //获取对象类信息
        Class<?> aClass = t.getClass();
        //获取类中方法
        Method[] methods = aClass.getDeclaredMethods();
        //遍历方法
        for (Method method : methods) {
            //获取方法修饰符
            String mod = Modifier.toString(method.getModifiers());
            //先拼接修饰符+方法名+'('
            System.out.print(mod + " " + method.getName() + "(");
            //获取方法参数类型
            Class<?>[] parameterTypes = method.getParameterTypes();
            //如果没有参数,那就直接拼接上+')'
            if (parameterTypes.length == 0) {
                System.out.print(")");
            } else {
                //有参数则遍历
                for (int i = 0; i < parameterTypes.length; i++) {
                    //没到最后一位参数,都用',',否则使用')'最收尾
                    char end = i == parameterTypes.length - 1 ? ')' : ',';
                    //输出参数
                    System.out.print(parameterTypes[i].getSimpleName() + end);
                }
            }
            //为每个方法换行
            System.out.println();
        }
    }

测试代码:

public static void main(String[] args) {
    MethodSign<String> methodSign = new MethodSign<>();
    methodSign.printMethodSign(new String("1"));
}

截取部分输出结果如下:
怎么获取类的所有方法签名