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
输出是arg0、arg1、arg2而不是id、username、createTime
指定-parameters
javac -parameters AccountMapper.java
javac PTest.java
java PTest
现在输出的是id、username、createTime,而不是arg0、arg1、arg2
AccountMapper字节码区别
javap -v AccountMapper
不指定-parameters
指定-parameters
idea指定-parameters
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及以上版本