Maven构建依赖后方法参数名丢失,如何保留参数名?
解决Maven构建后接口方法参数名丢失的问题
问题原因
Java默认编译时不会把方法参数名写入字节码文件,所以当你把Project1构建成依赖引入Project2后,无法从字节码中读取到自定义接口的参数名。而java.util.List这类JDK自带的接口,其字节码在编译时就已经包含了参数名信息,因此能正常显示。
解决方法
在Project1的pom.xml中配置Maven编译插件,添加-parameters编译参数(Java 8及以上版本支持),让编译器将参数名写入字节码:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <!-- 可根据需求更换为兼容的版本 --> <configuration> <source>1.8</source> <!-- 与你的项目Java版本一致,至少为1.8 --> <target>1.8</target> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> </plugins> </build>
配置完成后,重新构建Project1,再更新Project2中的依赖,此时就能正常获取到自定义接口方法的参数名了。
内容的提问来源于stack exchange,提问作者SRI HARSHA S V S
相关产品推荐
相关产品推荐

