小码问答,有问必答!

2019-11-14 13:03

Java能否通过反射获取方法的参数名字?不是用用Spring 的 ParameterNameDiscoverer

2019-11-14 13:03 回答了这个问题

jdk1.8之前java文件编译成class文件时并不会将参数名字也一起编译进去,而是以arg0,arg1这种模糊名字来替代。想要获取参数名字只能通过ASM、javassist等外部方法来实现。


Java编译时执行了javac -parameters命令,加上-parameters 就会把参数名也编译进去。之后就可以通过反射取出来了。


默认我们在Eclipse中编译时没有加这个-parameters 参数,所以即使用了jdk8也无法取出参数名。


eclipse可以通过配置来改变编译结果。

微信图片_20191114125736.jpg


0条评论

我要评论