使用 Java 反射检索局部变量名称
通过反射确定局部变量名称的能力长期以来一直是内部争论的话题Java 社区。尽管它在开发工具中很有用,但获取此类信息历来具有挑战性。
当前限制
从 Java 8 开始,对局部变量名称的完全访问并不容易实现通过反思。虽然编译期间的某些优化可能会从类文件中删除此信息,但有时它可能会存在。像 ASM 这样的字节码工程库可以提供检查局部变量表属性的方法,这些属性存储有关类型和名称的详细信息。
最新进展
在 Java 8 中,有限引入了对检索参数名称(局部变量的特殊类型)的支持。这些信息可以通过反射访问,取代依赖注入容器中对 @ParameterName 等注释的需要。
第三方解决方案
超越反射,第三方库可以提供检索局部变量名称的替代方法。一种可能的方法涉及修改编译器标志以在类文件中保留此信息。但是,此类方法可能并不适合所有用例,并且可能需要额外的设置。
以上是Java反射可以检索局部变量名吗?的详细内容。更多信息请关注PHP中文网其他相关文章!