AccountMapper 
public interface AccountMapper {

    public void accountAdd(Long id, String username, Date createTime);

}
PTest
public class PTest {

    public static void main(String[] args) throws  Exception {

        Method method = AccountMapper.class.getMethod("accountAdd",Long.class,String.class, Date.class);

        Arrays.stream(method.getParameters()).map(Parameter::getName).forEach(System.out::println);

    }

}

以上两个类,来演示获取变量参数名

 

自己编译

不指定-parameters

javac AccountMapper.java
javac PTest.java
java PTest

Parameter获取实际参数名 -parameters_maven

输出是arg0、arg1、arg2而不是id、username、createTime

 

指定-parameters

javac -parameters AccountMapper.java
javac PTest.java
java PTest

Parameter获取实际参数名 -parameters_apache_02

现在输出的是id、username、createTime,而不是arg0、arg1、arg2

 

AccountMapper字节码区别

javap -v AccountMapper

 不指定-parameters

Parameter获取实际参数名 -parameters_java_03

指定-parameters

Parameter获取实际参数名 -parameters_maven_04

 

idea指定-parameters

Parameter获取实际参数名 -parameters_java_05

 

maven指定-parameters
<build>
	<plugins>

		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>${java.version}</source>
				<target>${java.version}</target>
				<compilerArgs>
					 <arg>-parameters</arg>
				</compilerArgs>
			</configuration>

		</plugin>

	</plugins>
</build>

 

 

注意

-parameters 需要java8及以上版本