Java8方法参数反射 - 极悦
Java8新特性
Java9新特性

Java8方法参数反射

在JDK8中增加了Parameter参数类

package com.wkcto.parameter;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;

/**
 * 反射方法中参数
 *  需要在编译时使用-parameters参数
 * Author : 极悦老崔
 */
public class Test {
    public static void main(String[] args) {
        //1)创建Class对象
        Class<?> claxx = MyClass.class;

        //2)反射所有的方法
        Method[] declaredMethods = claxx.getDeclaredMethods();
        for( Method   method : declaredMethods ){
            //方法的修饰符
            int mod = method.getModifiers();
            System.out.print(Modifier.toString(mod) + " ");
            //方法返回值类型
            Class<?> returnType = method.getReturnType();
            System.out.print( returnType.getSimpleName() + " ");
            //方法名
            System.out.print( method.getName());

            //方法参数
            System.out.print("(");
            Parameter[] parameters = method.getParameters();
            for(int i = 0 ; i < parameters.length; i++){
                System.out.print( parameters[i].getType().getSimpleName() + " ");
                System.out.print( parameters[i].getName());
                //参数之间使用逗号分隔
                if ( i < parameters.length - 1 ){
                    System.out.print(",");
                }
            }

            System.out.println(");");
        }

    }
}

 

全部教程