记录JAVA反射获取方法实际参数名称

JAVA 通过反射获取方法参数时出现参数名为null情况

Parameter[] parameters = method.getParameters();
Arrays.stream(parameters).forEach(parameter -> {
    System.err.println(parameter.getName());
});

输出:

arg0

arg1

因为获取到的方法参数名称为空 所以返回的就是arg0  arg1

解决方案

需通过javac编译时 添加-paramster参数编译之后才能获取的实际的参数名称

1. 可通过设置 idea settings 里面的 java Compiler  Additional command line parameters:

-parameters

2. 可通过maven打包方式 进行设置

       

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <compilerArgs>
                    <arg>-parameters</arg>
                </compilerArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

核心:

<compilerArgs> <arg>-parameters</arg> </compilerArgs>

上一篇:python3_return()


下一篇:JS的乘、除、加、减法结果会有误差,在两个浮点数相乘的时候会比较明显